Thread Kommandozeilenparameter übergeben
(43 answers)
Opened by franc at 2011-01-17 16:34 2011-01-17T18:09:14 franc Was lässt Dich denken, dass Perl das denkt? Zunächst ist die Zuweisung von $map_type potentiell falsch (Du meintest wahrscheinlich $ARGV[0]). Ansonsten sind das simple Zuweisungen von Array-Werte an skalare Variablen. Das ist nichts, was Perl "denken" ließe, es handle sich um Dateinamen. Die von Dir gezeigte Zeile 10 $MapType = <>; nutzt eine besonderes Verhalten des <>, wonach versucht wird, alle angegebenen Parameter als Dateien zu öffnen und diese einzulesen. Schau mal dort nach: http://perldoc.perl.org/perlop.html und such nach dem String: "The null filehandle" Dort wird das Verhalten von <> erläutert. Deine Zuweisung im Stil $param = @ARGV[0] lässt die Parameter im @ARGV stehen und somit versucht <>, diese Liste abzuarbeiten. Wenn Du es im Stil $param = shift @ARGV tust, wird das jeweils erste Element aus @ARGV entfernt. Im Idealfall ist dann @ARGV leer und <> reagiert anders als zuvor... meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |