繼續前進並通過*ARGV
typeglob或\*ARGV
,其參考。只要確保最終使用該功能的功能通過<$fh>
運營商或readline($fh)
(其基本功能等效)即可實現。
問題從perlvar手冊頁所引用段尋址只是想提醒你,你將無法得到ARGV
的魔力開放觸發,如果你使用任何其他閱讀機制比readline
上句柄,例如read
,sysread
或getc
。
運行這個來證明自己工作原理:
sub mycat {
my $fh = shift;
print "$ARGV $.: $_" while <$fh>;
}
mycat(*ARGV);
假如把它放在一個文件,然後用幾個文件參數運行它:
% perl mycat ./mycat //`pwd`/mycat ~/mycat
./mycat 1: sub mycat {
./mycat 2: my $fh = shift;
./mycat 3: print "$ARGV $.: $_" while <$fh>;
./mycat 4: }
./mycat 5: mycat(*ARGV);
///home/tchrist/mycat 6: sub mycat {
///home/tchrist/mycat 7: my $fh = shift;
///home/tchrist/mycat 8: print "$ARGV $.: $_" while <$fh>;
///home/tchrist/mycat 9: }
///home/tchrist/mycat 10: mycat(*ARGV);
/home/tchrist/mycat 11: sub mycat {
/home/tchrist/mycat 12: my $fh = shift;
/home/tchrist/mycat 13: print "$ARGV $.: $_" while <$fh>;
/home/tchrist/mycat 14: }
/home/tchrist/mycat 15: mycat(*ARGV);
看到了嗎?它工作正常。
呵呵。我閱讀本文後,我的程序開始工作。 – 2010-10-29 06:26:06