我試圖在perl中將數據打印爲hexdump,但看起來像只有當我使用十六進制轉儲值「硬編碼」變量時它才工作。在下面的代碼,hexdump都被印刷爲第一殼體,但對於第二殼體($ VAR2),它只是打印出從文件讀出的數據處理在perl中將數據打印爲hexdump
#!/usr/bin/perl
use Data::Dumper;
$var = "\xE9\x92\x97\xAF\xE9\x92\x97\xB5";
print "the first dumper is\n";
print Dumper($var);
my $filename = 'c.txt';
open($fh, "<", $filename);
{
local $/;
$var2 = <$fh>;
chop($var2);
}
close($fh);
$var5 = $var2;
print "the second dumper is\n";
print Dumper($var5);
的上面的代碼的輸出是
[根@abc]#perl的code.pl
第一自卸是
$ VAR1 = 'E'-E'-μ';
第二自卸是
$ VAR1 = ' 「\ xE9 \ X92 \ X97 \ XAF \ xE9 \ X92 \ X97 \ XB5」';
看起來像perl會在文件句柄輸入中的每個斜槓上附加一個額外的反斜槓。我如何以hexdump打印文件句柄數據? c.txt文件的內容是
[根@ ABC]#貓c.txt
「\ xE9 \ X92 \ X97 \ XAF \ xE9 \ X92 \ X97 \ XB5」
我想你想打包和解壓縮,http://perldoc.perl.org/perlpackt ut.html。但是我很難弄清楚你是想要第一個還是第二個輸出。或者你只是想弄清楚發生了什麼? –
@丹,我想第一個輸出 – user2896215