Я пытаюсь проверить, не является ли образ диска или диска «пустым». Я собираюсь предположить, что это верно, если первые 1mb и последние 1mb являются нулями. Я начал, пытаясь воссоздать hexdump
, но, похоже, он немного сокрушен в этот момент.Исходный 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
Конечно, я смотрел на слишком сфокусированный вид, пытаясь исправить шаг, а не переписывать весь алгоритм. – zigdon