|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Kuvaldin 2:5020/976.21 26 Dec 2000 02:35:26 To : All Subject : inplace edit and binmode -------------------------------------------------------------------------------- Можно ли как-то заставить perl обрабатывать файлы из <> в binmode (under win)? Контекст проблемы. Приспичило обрабатывать группы двоичных файлов довольно мудреной структуры. Каждая запись в файле (переменной длины) заканчивается определенной сигнатурой, путь будет "80 00 05 00 99". Сделал так: #!%perlpath%/perl.exe -w -i.~ # ^^^^ inplace edit ($^I) suffix $/ = "\x80\x00\x05\x00\x99" # это у нас такой "конец строки" @ARGV = <*.ext>; # все .ext-файлы из текущего каталога while (<>) { # обработать их все bla-bla-bla; # как-то переработать $_ print; # записать результат } Все чудесно работает, однако мешают EOF-ы (0x1A). Сейчас заменяю их на пробелы отдельной программкой, но хотелось бы от нее избавиться. И, при возможности, сохранить изящество подхода inplace-edit. Про возможность проделывать вручную то, что неявно проделывает perl в inplace-edit режиме, и после открытия файла делать ему binmode я знаю. Равно как и про то, что в других ОС данной проблемы EOF нет. Есть еще варианты? Спасибо. Андрей Кувалдин --- GoldED+ * Origin: Сам себе модератор (2:5020/976.21) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/39533a4800d6.html, оценка из 5, голосов 10
|