-1
在Perl中,我需要打印所有選擇的文件:Perl中發現輸入文件
./print.pl 1.txt 2.txt 3.txt
的ARGV是2,我可以打印them.But然後我寫的命令,如:
./print.pl <1.txt 2.txt
當我以這種方式運行時,輸出僅爲2.txt,ARGV爲0.如何將< 1.txt作爲輸入文件檢測到?
文件名是1.txt,'<'用於將1.txt放入代碼中。
在Perl中,我需要打印所有選擇的文件:Perl中發現輸入文件
./print.pl 1.txt 2.txt 3.txt
的ARGV是2,我可以打印them.But然後我寫的命令,如:
./print.pl <1.txt 2.txt
當我以這種方式運行時,輸出僅爲2.txt,ARGV爲0.如何將< 1.txt作爲輸入文件檢測到?
文件名是1.txt,'<'用於將1.txt放入代碼中。
如果您確實有一個以<
開頭的文件名,請將文件名作爲參數發送到引號中。
這版畫只是文件名:
perl -E 'say $ARGV[0]' "<1.txt"
<1.txt
這個小腳本打印出該文件的內容:
use warnings;
use strict;
for (@ARGV){
open my $fh, '<', $_ or die $!;
print <$fh>;
}
例子:
perl script.pl "<1.txt"
a
b
c
'<'使shell重定向作爲'@ ARGV'中唯一的元素,'1.txt'到'STDIN'的內容爲'print.pl'命令並且通過'2.txt'。 –
I s'<1.txt'真的是文件名嗎?包括領先的'<?還是你想用一個來自stdin的文件和另一個作爲文件名給出的文件調用'print.pl'? – PerlDuck
這就是你爲什麼使用3 arg打開的原因之一! – Sobrique