Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 inplace edit and binmode   Andrey Kuvaldin   26 Dec 2000 02:35:26 
Архивное /ru.perl/39533a4800d6.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional