#!/usr/bin/perl
use strict;
use warnings;
open(TEST, "leet.txt") or die "Can't open leet.txt: $!\n";
while(my $line = <TEST>) {
if($line =~ tr/34/ea/)
print <<EOF;
$line
EOF
}
它产生了这个: 语法错误在./practice.pl第11行,靠近“) 打印” 由于编译错误,./practice.pl的执行中止。
答案 0 :(得分:6)
您必须将if
命令括在{ }
块中,即使它只有一个命令。与其他语言不同,在Perl中,这不是可选的。
if($line =~ tr/34/ea/) {
print <<EOF;
$line
EOF
}
答案 1 :(得分:0)
我想你最后跳过了两个“}”。然后添加“{”:
if($ line = ~tr / 34 / ea /) {
答案 2 :(得分:0)
要有条件地运行单个语句,请将条件放在语句之后。例如,这两个语句具有相同的行为:
if ($bar) { print "foo!\n"; }
print "foo!\n" if ($bar);
就您的代码而言,您可以这样编写:
#!/usr/bin/perl
use strict;
use warnings;
open(TEST, "leet.txt") or die "Can't open leet.txt: $!\n";
while(my $line = <TEST>) {
print <<EOF if ($line =~ tr/34/ea/);
$line
EOF
}
close TEST;