【发布时间】:2014-06-04 15:37:30
【问题描述】:
#!/usr/bin/perl
use warnings;
use Switch;
while (<>) {
next if /^\s*\/\//;
next if /^\s*$/;
my $line="$_";
chomp($line);
print $line;
print "Checking for line:\n$line";
}
这是我从命令行获取输入文件的代码。它接受以下文件作为输入:
// Computes R0 = 2 + 3
@2
D=A
@3
D=D+A
@0
M=D
在代码中,我尝试在 chomp 函数的帮助下删除每行末尾的换行符。但是,当我在应用 chomp 后尝试打印该行时,它不会为该行打印任何内容。它给出以下输出:
检查线路: 检查线路: 检查线路: 检查线路: 检查线路: 检查线路:为什么没有打印行?
【问题讨论】:
-
您的输入是否有
\r\n行尾? -
我不认为它有这种类型的结尾,但它仍然不应该至少在换行符之前打印剩余的字符
-
您能否确保 print $line 在您的两条
next行之后返回一些内容 -
(不相关 - 尽量避免使用Switch。与其说是好处,不如说是问题。)