Ich glaube nicht, dass die folgenden funktionieren sollte, aber es funktioniert:Durchläuft der Perl-Diamantoperator nicht-magische Arrays (nicht @ARGV)?
$ perl -e '@a = qw/1222 2 3/; while (<@a>) { print $_ ."\n";}'
1222
2
3
$
Soweit ich weiß, <>
Bedienungs Perl shoud auf Dateihandle, Klackse arbeiten und so weiter, mit Ausnahme des wörtlichen <>
(anstelle von <FILEHANDLE>
), die magisch über @ARGV
iteriert.
Weiß jemand, ob es auch so funktionieren soll wie in meinem Test?
Von perlop (1) über <> und @ARGV: So funktioniert es: Beim ersten Mal <> wird ausgewertet, das @ ARGV-Array wird überprüft, und wenn es leer ist, wird $ ARGV [0] gesetzt zu "-", die beim Öffnen gibt Standardeingabe. Das @ ARGV-Array wird dann als eine Liste von Dateinamen verarbeitet. Ich kann etwas Ähnliches mit meinem @a passiert sehen, obwohl es nicht scheint, dass das mit jedem Array passieren sollte (und ich weiß, dass die Foreach oder Map bessere Wege sind, um Arrays zu bearbeiten). Ich möchte immer noch wissen, warum, ohne sich in den Code graben –