0

次の Perl スクリプトがあるとします。

# USAGE: ./flurp -x -vf file1 file2 file3 file4

# e.
$a = shift;
$b = shift;
$c = shift;
@d = <>;

# ei.  value of $b = -vf
# eii. value of @d = content of file2, file3, file4

print "$b\n";
print "@d\n";
print "$ARGV\n";

これは出力です:

-vf
{contents of file2, file3, file4}
file4

の出力に困惑していますprint "$ARGV\n"。しようとするprint "$ARGV[-1]\n"と、空の行が STDOUT に出力されます。を直接参照する$ARG[2]と、同様に空の行が表示されます。

を使用するとスクリプトが印刷されるのはなぜfile4ですか$ARGV?

反例として、print "$d\n"の最後の行を取得することを期待して、 を試しましたfile4。予想される出力の代わりに、空の行が表示されました。どのように機能し$ARGVますか?

4

1 に答える 1