FAQ по PERL
11. Борьба с глюками m$ windows
11.1 Почему мой perl ругается на flock()?
Потому что на windows нет flock(2).
Используйте File::Lock с CPAN.
11.2 Тоже самое, но с fork()?
Windows это не unix. Они fork не умеют.
11.3 Как бы мне добится нормальной сортировки в алфавитном порядке, преобразования в прописные/строчные буквы?
Perl для этого опирается на механизм locale. К счастью, это работает и на windows:
Если надо работать с CP866, пишем
use locale;
use POSIX;
&POSIX::setlocale(&POSIX::LC_ALL, "Russian_Russia.866");
print uc "Да, здесь будут заглавные буквы";
если KOI8 (sic!):
&POSIX::setlocale(&POSIX::LC_ALL, "Russian_Russia.20866");
если с CP1251 -- просто
use locale;
Со всеми тремя кодировками работают и uc/lc, и /\w/
Проверено под NT на perl 5.005_02, собраном через VC++ 5.0 из исходников, скачанных с CPAN/ports/win32/Standard/
11.4 Почему скрипты, которые я написал дома на windows, при загрузке на unix машину не работают?
Этому может быть миллион разных причин, но самая часто встречающаяся -- unix и наследники CP/M используют разные последовательности конца строки.
Если вы их загружаете по ftp, включите режим ASCII.
[ ОГЛАВЛЕНИЕ ]
|