私はヘッダー作成のPerlスクリプトを持っていますが、ほとんどの時間は大変効果的ですが、しばらくしてから問題が発生します。 CRC番号772423333 PERLパックの機能が壊れているので、私はそれの肉のすぐ下に行くでしょう。Perlパックの機能が壊れていますか?
my $dec = 772423333;
my $broken = pack("N", $dec);
print "Good:\t", uc(sprintf("%x", $dec)), "\nBad:\t$broken"; # eg. 2E0D0A3EA5
可読性のあるHEXを印刷する方法がわからないことを私に許してください。しかし、これは返すものです。
Good: 2E0A3EA5
Bad: 2E0D0A3EA5
0D
を削除するにはどうすればよいですか?
文字列にbinmodeをどのようにして開きますか?またはファイルに直接出力する必要がありますか? –
あなたの文字列($ broken)は問題ありません。あなたのプリントは余分なキャラクターが来る場所です。あなたが書いているファイルハンドルをbinmodeする必要があります。あなたの例では、それはSTDOUTですが、あなたの実際のコードではおそらく他のもの、おそらくソケットです。 – derobert
面白いことに私たちのコードはファイルハンドルに 'binmode'を持っていましたが、':raw'に置き換えられました。最終的に、バージョン化の問題のために ':raw'が削除されました。そして今、私たちはファイルハンドル上の 'binmode'の完全な丸です。 –