while(<@thisArray>)
誰かがこれが正確に何をするか知っていますか?コードは通常次のようなものであるため、私たちはそれについて議論していました。
while(<STDIN>)
while(<@thisArray>)
誰かがこれが正確に何をするか知っていますか?コードは通常次のようなものであるため、私たちはそれについて議論していました。
while(<STDIN>)
のパターンに一致するファイル名を反復処理します@thisArray。
に変換されるperl -MO=Deparse -e '1 while(<@thisArray>)'ショーの結果:<>glob
use File::Glob ();
'???' while defined($_ = glob(join($", @thisArray)));
globマニュアルから:
スカラー コンテキストでは、glob はそのようなファイル名展開を繰り返し処理し、リストが使い果たされると undef を返します。
のデフォルト値$"はスペースです。したがって、 の複数のパターン@thisArrayが 1 つの文字列に結合され、内部のスペースで分割されますglob。
glob はその引数を空白で分割し、各セグメントを個別のパターンとして扱うことに注意してください。
<@thisArray>として動作しglob(@thisArray)ます。したがって、配列のメンバーに一致するすべてのファイルのリストが表示されます。
配列の要素がファイルと一致しない場合は、要素自体が返されます。
perlopを参照してください:
山かっこ内にあるものがファイルハンドルでも、ファイルハンドル名、typeglob、またはtypeglob参照を含む単純なスカラー変数でもない場合、グロブされるファイル名パターンとして解釈されます。