Вопрос по perl про переключение локалей
Nov. 27th, 2005 08:43 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Общая постановка задачи: Как в процессе работы перлового скрипта переключиться с однойдругую на дргугую.
Задача для частного случая: Два раза напечатать дату. Один раз в локале из которой скрипт бвторойщен, втоврой раз
в локале en_US (В системе такая локаль есть)
Пробуем решить:
Решение не верное. Оба раза дата выводится по русски...
Где ошибка, куда копать?
Задача для частного случая: Два раза напечатать дату. Один раз в локале из которой скрипт бвторойщен, втоврой раз
в локале en_US (В системе такая локаль есть)
Пробуем решить:
use strict; use POSIX; print strftime("%B %d, %Y",0, 0, 0, 30, 10, 79)."\n"; setlocale('LC_ALL','en_US'); $ENV{'LANGUAGE'} = 'en_US'; $ENV{'LANG'} = 'en_US'; $ENV{'LC_ALL'} = 'en_US'; print strftime("%B %d, %Y",0, 0, 0, 30, 10, 79)."\n";
Решение не верное. Оба раза дата выводится по русски...
Где ошибка, куда копать?
no subject
Date: 2005-11-27 05:51 pm (UTC)а не так?
no subject
Date: 2005-11-27 06:01 pm (UTC)require 5.004;
use warnings;
use strict;
# Import locale-handling tool set from POSIX module.
# This example uses: setlocale -- the function call
# LC_CTYPE -- explained below
use POSIX qw(locale_h strftime);
print strftime("%B %d, %Y",0, 0, 0, 30, 10, 79)."\n";
setlocale(LC_ALL, "en_US");
print strftime("%B %d, %Y",0, 0, 0, 30, 10, 79)."\n";
----
$ cat /etc/fedora-release
Fedora Core release 4 (Stentz)
----
$ perl -v
This is perl, v5.8.6 built for i386-linux-thread-multi
Кавычки в общем =)
Date: 2005-11-27 06:02 pm (UTC)Re: Кавычки в общем =)
Date: 2005-11-27 06:23 pm (UTC)LC_ALL это что?
Re: Кавычки в общем =)
Date: 2005-11-27 06:36 pm (UTC)Re: Кавычки в общем =)
Date: 2005-11-27 06:44 pm (UTC)Там же написано про setlocale буквально следующее:
Правило второе - если у юзера не получается удалить файл в /tmp он переустанавливает систему.
НИКОГДА НЕ ПЕРЕСТАВЛЯЙТЕ LC_ALL. Надо время - значит это LC_TIME. Надо верхний/нижний регистр - значит LC_CTYPE. А то огребете грабли с LC_NUMERIC.
no subject
Date: 2005-11-27 09:55 pm (UTC)Я внимательно посмотрел, там все без кавычек...
Вообщем буду дальше копать.. :-/