alexkuklin (
alexkuklin) wrote2005-11-27 08:43 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Вопрос по perl про переключение локалей
Общая постановка задачи: Как в процессе работы перлового скрипта переключиться с однойдругую на дргугую.
Задача для частного случая: Два раза напечатать дату. Один раз в локале из которой скрипт бвторойщен, втоврой раз
в локале 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
а не так?
no subject
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
Кавычки в общем =)
Re: Кавычки в общем =)
LC_ALL это что?
Re: Кавычки в общем =)
Re: Кавычки в общем =)
Там же написано про setlocale буквально следующее:
Правило второе - если у юзера не получается удалить файл в /tmp он переустанавливает систему.
НИКОГДА НЕ ПЕРЕСТАВЛЯЙТЕ LC_ALL. Надо время - значит это LC_TIME. Надо верхний/нижний регистр - значит LC_CTYPE. А то огребете грабли с LC_NUMERIC.
no subject
Я внимательно посмотрел, там все без кавычек...
Вообщем буду дальше копать.. :-/