我試圖檢查磁盤或磁盤映像是否爲'空'。如果第一個1mb和最後一個1mb是零,我會假設這是真的。我開始試圖重新創建hexdump
,但在這一點上似乎有點conv ded。本地perl hexdump - 只檢查零值
這裏是我的粗略代碼:
open DISK, $disk or die $!;
for(1 .. 1024) {
$buffer = undef;
sysread(DISK, $buffer, 1024, 0) or last;
for (split //, $buffer) {
if(ord($_) =~ /[^0]/) {
$flag++;
}
}
}
有沒有更好的方式來做到這一點?
通常,當你發現自己運行的'分裂//'產生字符的列表,有一些更好的方式來做到這一點在Perl,而不訴諸砍你的字符串成一點微小的 - 獨立 - 字符。 @mob給出的正則表達式的方法要比你使用的slice-n-dice方法快幾個數量級。 – tchrist 2012-03-03 16:53:06
當然,我一直在關注那個視圖,試圖修復一個步驟而不是重寫整個算法。 – zigdon 2012-03-03 21:11:53