alexkuklin: (Default)
[personal profile] alexkuklin
Общая постановка задачи: Как в процессе работы перлового скрипта переключиться с однойдругую на дргугую.


Задача для частного случая: Два раза напечатать дату. Один раз в локале из которой скрипт бвторойщен, втоврой раз
в локале 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"; 


Решение не верное. Оба раза дата выводится по русски...

Где ошибка, куда копать?

Re: Кавычки в общем =)

Date: 2005-11-27 06:44 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Правило первое user never reads documentation

Там же написано про setlocale буквально следующее:

Modifies and queries
program’s locale. The following examples assume
        use POSIX qw(setlocale LC_ALL LC_CTYPE);


has been issued.



The following will set the traditional
UNIX system locale behavior (the second
argument "C").


        $loc = setlocale( LC_ALL, "C" );



Правило второе - если у юзера не получается удалить файл в /tmp он переустанавливает систему.
НИКОГДА НЕ ПЕРЕСТАВЛЯЙТЕ LC_ALL. Надо время - значит это LC_TIME. Надо верхний/нижний регистр - значит LC_CTYPE. А то огребете грабли с LC_NUMERIC.

Profile

alexkuklin: (Default)
alexkuklin

January 2020

S M T W T F S
    1234
567891011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 31st, 2025 02:42 am
Powered by Dreamwidth Studios