0
#!/usr/bin/perl
if ($ARGV[0]=="-v") {
print "MY name: abc\n";
print "MY student ID:111110\n";
}
if ($ARGV[0]=="-s" && $ARGV[1]==printing_usage_file) {
open (INFILE, $ARGV[1]) or die "An input file is required as argument\n";
$totalbytes=0;
$data="";
while(<INFILE>) {
chomp();
@data=split(/,/);
$totalbytes += $data[1];
}
print "Total number of bytes printed: $totalbytes\n";
}
在这种情况下,我想要的是当我运行./perl.pl -v
,它打印my name
和id
。我运行./perl.pl -s printing_usage_file
时,它打印totalbytes(printing_usage_file file is list like:aaa,240,ccc)
。
但在这里,当我运行/perl.pl -v
或./perl.pl -s printing_usage_file
它打印my name
,id
和totalbytes
。我该如何解决它?
如果我使用ELSIF在第二if语句,/perl.pl -s printing_usage_file将打印我的名字和ID没有totalbytes –
添加'使用警告;'和'使用严格的;',你会得到一个抱怨裸字'printing_usage_file'。使用单词不是一个好习惯。你也会被告知用'my'声明所有的变量。请注意,标量'$ data'在脚本的其余部分未被使用。有经验的Perl程序员使用严格和警告来确保他们没有犯任何愚蠢的错误;新手Perl程序员也应该使用它们,出于同样的原因。 –