perl打印不正确/不完整

时间:2017-12-12 05:02:43

标签: perl

我试图打印一些变量。但有时它会打印延迟或不完整。下面是我的代码的一部分。

my $ltc1v = $data->{PartNumber}->{rev} . "\n";
chomp $ltc1v;

($result)=$check1=~ /:\s*(.+)$/; 

print "{{ $result }}\n";
print "{{ $ltc1v }}\n";

if ($result eq $ltc1v ) 
{}

某些时候结果显示良好且能够匹配条件。

{{ 0x000b }}
{{ 0x000b }}

但有时它会显示如下,如果条件无法匹配。

 }}0x000b
{{ 0x000b }}

仅供参考,我使用以下命令自动刷新

$| = 1;

3 个答案:

答案 0 :(得分:1)

有时您的数据会以回车符结束。您可以使用$result =~ y/\r//d;删除它。

或者不要将其包含在您匹配的内容中:

($result)=$check1=~ /:\s*(.+?)\r?$/;

答案 1 :(得分:1)

我将在此处添加标准建议:

如果您不确定为什么输出看起来不像您期望的那样,请检查您的数据包含的内容。

use Data::Dumper;
local $Data::Dumper::Useqq = 1;
print Dumper $result;
# print Dumper \@array, \%hash;

perldoc Data::Dumper

答案 2 :(得分:0)

$check1包含回车。

如果您有chomp($check1);,请将其替换为$check1 =~ s/\s+\z//;

如果您没有chomp($check1);,只需添加$check1 =~ s/\s+\z//;