2016-03-30 8 views
-1

Ich bin neu in Perl und Codierung und nicht ganz sicher, wo/was zu suchen, so dass diese Frage möglicherweise schon einmal gestellt wurde.Codierung für externe Benutzereingabe in Perl

Ich fertige ein Programm in Perl und möchte wissen, welchen Code zu verwenden, der mir erlaubt, eine Variable (Name) außerhalb des Programms einzugeben, ohne es in der Codierung angeben zu müssen - mir wurde gesagt, es gibt einen Weg zu führe das Programm außerhalb von putty aus (ich benutze putty) und dass es mich bittet, die Variable/s vorher einzugeben.

in der die variable Codierung angegeben wird am Anfang als:

my $ name = 'xxx';

nach dem der Name verwendet wird, um zu spezifizieren, welche Dateien zu verwenden usw. Ich habe über 30 verschiedene Namen, die ich einzeln ausführen muss, so wäre es viel einfacher, wenn ich es nur als Teil des Programms statt eingeben kann Ändern der Codierung jedes Mal in Putty.

Hoffe meine Frage ist klar - ich lerne immer noch die verschiedenen Begriffe und Syntax.

Danke!

+0

nimm die Liste in eine Datei und wiederhole sie über deinen Code, um den Job zu erledigen – Nagaraju

+0

Ich verstehe nicht, wie du bist "nicht ganz sicher, wo/wonach gesucht werden soll" ... wie wäre es mit "Perl Benutzereingabe? " Es ist überall. Es ist auch nicht klar, was Sie meinen, indem Sie "Putty" erwähnen - das ist ein Programm, das zum Verbinden verwendet wird. Wenn Sie Ihr Skript in einem Terminal ausführen: Drucken Sie eine Nachricht, die die Eingabe sucht, und lesen Sie es dann ein: 'print 'Geben Sie den Namen ein:"; $ name = ; chomp ($ name); '. Siehe zum Beispiel [dieser Beitrag] (http://stackoverflow.com/questions/9661379/how-to-prompt-for-in-put-and-exit-if-the-user-entred-an-empty-string) oder eines der vielen Tutorials oder Bücher. – zdim

+0

zdmin, wie gesagt, ich habe erst vor weniger als einem Monat mit Perl begonnen, so dass mein Wissen zu diesem Thema unweigerlich begrenzt ist. Ich hatte den Eindruck, dass Putty verwendet wird, um die Bearbeitung zu entschuldigen, wenn ich die falsche Annahme mache. Ich habe mehrere Links für die Verwendung von gefunden, ich hätte das wahrscheinlich erwähnen sollen und dass ich es ausprobiert habe, aber nicht außerhalb des Bearbeitungsprogramms ausführen konnte - das Ausführen des .pm-Programms direkt von meinem Dateiverzeichnis gibt mir keine Aufforderung für die Eingabe, nur wenn aus dem Editor (Putty) ausgeführt wird. Ist es dann nur möglich, innerhalb des Editors zu laufen? – DKru

Antwort

1
use strict; 
use warnings; 

open(IN,$ARGV[0]) or die "Cannot open $ARGV[0]:$!\n"; 
my @in = <IN>; 
close(IN); 

my $name=''; 
foreach my $in(@in){ 
    chomp($in); 
    $name = $in; 
    ###your code here 
} 

Ihre fle Probe

name1

name2

name3

Führen Sie Ihre Programme als

perl program.pl filename.txt

Update: (nach OP Kommentar)

my $name = <STDIN>; 

dies für eine Benutzereingabe aufgefordert wird.

+0

Vielen Dank für Ihren Rat. Problem ist, dass die Liste wächst/verändert und ich möchte sie nacheinander ausführen können.Gibt es keine Möglichkeit, eine Eingabeaufforderung anzufordern, bei der Sie den Namen vorher eingeben? – DKru

+0

Denken Sie zweimal darüber nach. Es ist theoretisch möglich, aber eigentlich eine schreckliche Idee. – Sobrique