【发布时间】:2016-06-16 04:21:10
【问题描述】:
考虑:
#!/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。我该如何解决?
【问题讨论】:
-
如果我在第二个 if 语句中使用 elsif,/perl.pl -s printing_usage_file 将打印我的姓名和 ID,而不包含总字节数
-
添加
use warnings;和use strict;,您将收到有关“printing_usage_file”字样的投诉。使用裸词不是一个好习惯。您还会被告知使用my声明所有变量。请注意,标量$data在脚本的其余部分中未使用。有经验的 Perl 程序员使用严格和警告来确保他们没有犯任何愚蠢的错误;出于同样的原因,新手 Perl 程序员也应该使用它们。
标签: perl