while(<@thisArray>)
Qualcuno sa cosa farebbe esattamente? Stavamo solo avendo una discussione su di esso in quanto è il codice è di solito qualcosa come:while (<@array>) effetti per perl
while(<STDIN>)
while(<@thisArray>)
Qualcuno sa cosa farebbe esattamente? Stavamo solo avendo una discussione su di esso in quanto è il codice è di solito qualcosa come:while (<@array>) effetti per perl
while(<STDIN>)
<@thisArray>
opere come glob(@thisArray)
. Quindi fornisce un elenco di tutti i file che corrispondono ai membri dell'array.
Se un elemento dell'array non corrisponde a un file, viene restituito l'elemento stesso.
Esso itererà attraverso i nomi dei file corrispondenti ai modelli in @thisArray
.
Risultato di perl -MO=Deparse -e '1 while(<@thisArray>)'
mostra che <>
viene convertito in glob
:
use File::Glob();
'???' while defined($_ = glob(join($", @thisArray)));
Da glob
manuale:
In un contesto scalare, itera glob attraverso tali espansioni nomefile, restituendo undef quando la lista è esaurita .
valore predefinito per $"
spazio, quindi più pattern da @thisArray
ricomposte in un'unica stringa e poi spacco indietro di spazio all'interno glob
:
noti che glob divide i suoi argomenti spazi e tratta ciascuno segmento come modello separato.
Grazie mille. Lo stavo usando per un conteggio quindi il conteggio sarebbe stato lontano. – Psyllex
Non si deve fare nulla, poiché '@ array' non è un nome di filehandle, è il nome di un array. – SexyBeast