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程序員也應該使用它們,出於同樣的原因。 –