|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexey Mahotkin 2:5020/400 26 May 2004 23:48:23 To : Serguei Miridonov Subject : Re: Как в бинарном файле искать строки? -------------------------------------------------------------------------------- >>>>> "SM" == Serguei Miridonov <mirsev@cicese.mx> writes: >>>> Задача: есть переменная $data, содержащая порядка 1.5Mb бинарных >>>> данных. Hадо найти все последовательности байтов, соответствующих >>>> печатным символам и их позиции относительно начала строки. Т.е. - >>>> сделать нечто аналогичное утилите strings. Я пробовал while (my >>>> ($string) = $data =~ m/\G([[:print:]]+)/gc) { print $string . " at >>>> pos = " . pos($string) . "\n"; SM> тьфу - конечно pos($data), но это не причем... Все равно не работает >> while ($data =~ m|[[:print:]]+|g) { print $&; } ? SM> Правильно! Потому что раньше у тебя был списочный контекст на момент присваивания. оператор =~ срабатывал, возвращал сразу весь список совпадений, и присваивал первое из них переменной $string. Сейчас списочный контекст выведен на уровень while. --alexm --- ifmail v.2.15dev5.3 * Origin: tyranny (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/38656a4290d9.html, оценка из 5, голосов 10
|