以下是可行的代码段,
open(C, "Inputfile.txt") || die "Cannot open the file\n";
use List::MoreUtils qw(uniq);
use Math::Round
while(<C>)
Run Code Online (Sandbox Code Playgroud)
我希望在命令行中传递文件名.我试图使用ARGV,但它无法正常工作.我把它修改为:
use List::MoreUtils qw(uniq);
my $filename = $ARGV[1];
while($filename)
Run Code Online (Sandbox Code Playgroud)
当我执行它时
perl file.pl inputfile.txt
Run Code Online (Sandbox Code Playgroud)
我没有得到任何输出.谁能说,为什么它不起作用?
谢谢,
美联社
问题
$ARGV[1]中没有定义,因为Perl数组是零索引的open一个文件句柄$filenamereadline文件句柄进行操作,例如while ( <$fh> ) { ... }也就是说,只需使用钻石操作员<>或<ARGV>:
while (<>) {
...
}
Run Code Online (Sandbox Code Playgroud)