我有以下一串代码:字符串比较似乎无效
my $f1 = $ARGV[0] // '';
my $f2 = $ARGV[1] // '';
print "f1: $f1\n";
print "f2: $f2\n";
if ($f2 eq '') {
print "reach here\n";
open(DATA1, $f1) or die $!;
} else {
open(DATA1, $f2) or die $!;
}
会收到命令行1个或2个参数,命令行调用是这样的:
perl perl_unix_wc.pl -l file.txt
或该:
perl perl_unix_wc.pl file.txt
我试图界定2个定标器以从命令线接收字符串,是否适用于情况1,那么 '打开(DATA1,$ f2)或死掉$!'将被调用,否则'打开(DATA1,$ f1)或死亡$!'会叫。但实际上,只有情况2被执行,情况1从未到达。我的代码在这里有什么问题?这里的字符串比较有问题吗?谢谢。
你们是不是要进入的第一个参数或“”在F1和第二个参数或“”我n f2?如果你尝试||代替 // ? –