我试图打印一些变量。但有时它会打印延迟或不完整。下面是我的代码的一部分。
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;
答案 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;
答案 2 :(得分:0)
$check1
包含回车。
如果您有chomp($check1);
,请将其替换为$check1 =~ s/\s+\z//;
。
如果您没有chomp($check1);
,只需添加$check1 =~ s/\s+\z//;
。