我想編寫一個Perl腳本,它從管道捕獲二進制數據並讀取Perl內的二進制數據,並將接收到的二進制內容作爲文件處理程序進行處理。從管道中讀取二進制數據perl
我能夠從管道接收二進制內容,問題是在從Perl讀取數據時,二進制格式不能正確保存。 NUL字符不會被保留,並在Perl環境中將此字符轉換爲換行符。以下是命令行參數和樣品
>more D:\Sample_binary.zip| perl readpipe.pl D:\sample_output.txt
readpipe.pl
local $/;
my $lines = <STDIN>; # Read the binary data from pipe
open my $IN, "+<", \$lines; # Load the content as file handler
$zip = Archive::Zip->new;
$zip->readFromFileHandle ($IN); # Read ZIP file from the received binary data
這是一個[無用的'more'](http://www.iki.fi/era/unix/award.html)(其中'more'比'cat'更無用,因爲它僅適用於交互式使用)。 Perl cam無需使用外部程序即可讀取標準輸入。 – tripleee
但是從Perl內讀取檔案可能會更簡單。只需將一個輸入文件名參數傳遞給Perl腳本即可。 – tripleee
是的。當我們使用'cat'命令時,能夠讀取二進制內容。我目前正在WINDOWS平臺上進行檢查。所以我嘗試使用'type'命令並獲取原始二進制數據。謝謝!! –