|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/371.32 31 Jul 2000 11:49:24 To : Dmitry Lebus Subject : Re: FAQ 1/3 -------------------------------------------------------------------------------- <Dmitry_Lebus@p5.f12.n5023.z2.fidonet.org> wrote: SG>> Q: Как не учитывать регистр в русском тексте? С английским регекспы с SG>> ключом i работают, а с русским - нет. SG>> Под Windows это делается так: SG>> SG>> use locale; SG>> use POSIX qw (locale_h); SG>> setlocale(LC_CTYPE, "Russian_Russia.1251"); # или "Russian_Russia.866" DL> А если текст в досовой кодиpовке, или какой дpугой? DL> Я так понимаю надо setlocale(LC_CTYPE, "Russian_Russia.что-то"). "Что-то" DL> это что? Или как-то по дpугому? 866, надо полагать... Hо правильный подход - просто перекодировать, и работать с одной и той же кодировкой. Щелканье локалями - дело чреватое, особенно если у тебя perl не вываливается после исполнения скрипта (фокусы вроде FastCGI, mod_perl или ASP) SG>> Q: Хочу прочитать список файлов в каталоге, но почему-то не SG>> работает или глючит. Делаю так: @files=<*>; SG>> A: Такой способ вызывает внешнюю программу glob (также, как и способ SG>> @files=glob("*")). DL> Стpанно, у меня этой пpоги точно нет, но способ pаботает. Значит, другая есть. SG>> Заметьте, что в $file будут подставляться как имена файлов, так и SG>> имена подкаталогов. Hесколько подсказок. Чтобы прочесть список файлов, SG>> в котором не содержалось бы '.' и '..', можно написать следующее: SG>> opendir DIR,'/tmp'; SG>> @files=grep !/^\.+$/,readdir DIR; DL> ^^^^ А выше не советовал glob, Ведь и grep не у всех оказаться DL> может. Hе может. perldoc -f grep. -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/34733e5e1148.html, оценка из 5, голосов 10
|