perl - perl 中的这个编译错误是什么?我没有看到语法问题

标签 perl

#!/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 的执行中止。

最佳答案

您必须将 if 命令包含在 { } block 中,即使它只有一个命令。与其他语言不同,在 Perl 中,这不是可选的。

    if($line =~ tr/34/ea/) {
        print <<EOF;
$line
EOF
    }

关于perl - perl 中的这个编译错误是什么?我没有看到语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7113373/

相关文章:

Perl 递归和函数

perl - 为什么拆分不返回任何东西?

perl - 将 perl 连接到 ms 访问

perl - 尝试在 Perl 中使用 Module 并在模块不可用时打印消息

perl - 示例 curses/ncurses Perl 小部件?

macos - 如何强制 CPAN 构建使用 INC 和 LIB 路径默认值 (cpanm+perlbrew)

c# - 匿名方法/函数 : a fundamental feature or a violation of OO principles?

Perl "\my $var"为什么 "my"用反斜杠转义?

perl - Perl 中\b 的用法

perl - 为什么 Perl 的 File::Copy 似乎默默地失败了?