以下是可行的代码段
open(C, "Inputfile.txt") || die "Cannot open the file\n";
use List::MoreUtils qw(uniq);
use Math::Round
while(<C>)
我希望在命令行中传递文件名。我试图使用ARGV,但它无法正常工作。我将其修改为:
use List::MoreUtils qw(uniq);
my $filename = $ARGV[1];
while($filename)
当我用
执行它时perl file.pl inputfile.txt
我没有得到任何输出。谁能说,为什么它不起作用?
谢谢,
AP
答案 0 :(得分:5)
问题
$ARGV[1]
open
$filename
readline
,例如while ( <$fh> ) { ... }
也就是说,只需使用钻石运算符<>
或<ARGV>
:
while (<>) {
...
}
答案 1 :(得分:1)
应该是$ARGV[0]
,而不是[1]
。根据{{3}},@ARGV
不包含程序名称 - 这是单独的变量$0
。