2017-12-12 22 views
0

何かを印刷しようとしました。遅延や不完全な内容が印刷されることがあります。以下は私のコードの一部です。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 }} 

FYI、私は

だけでなく、オートフラッシュへのコマンドの下に使用
$| = 1; 

答えて

1

時々、あなたのデータは、キャリッジリターン文字で終わるように見えます。 $result =~ y/\r//d;でそれを削除できます。

それとも、一致するもので、それが含まれていません。

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

はい、あなたは正しいです。返送料のために。とにかくありがとう! –

0

$check1は、キャリッジリターンが含まれています。

chomp($check1);がある場合は、$check1 =~ s/\s+\z//;に置き換えてください。

chomp($check1);がない場合は、$check1 =~ s/\s+\z//;を追加してください。

+0

私はchopmを使っていますが、まだ動作していません。しかし、 '$ check1 =〜s/\ s + \ z //;'と置き換えれば、今すぐ動作します。 2つの違いは何ですか? –

+0

置換により末尾の空白文字が削除されます。 – ikegami

1

私はここに私の標準勧告が追加されます:あなたはあなたが期待するようなあなたの出力は見ていない理由がわからないときはいつでも

は、あなたのデータが含まれているかどうか確認します。

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

perldoc Data::Dumper

関連する問題