Глобальные настройки локали в Perl? - PullRequest
3 голосов
/ 09 июля 2010

Я отлаживаю Perl-скрипт, который выглядит следующим образом (упрощенно):

#!/usr/bin/perl    
use strict;
use warnings;

use Evil::Module;

printf "%.3f\n", 0.1;

Этот скрипт выводит 0,100 (примечание , вместо .). Если я закомментирую оператор use Evil::Module, результат будет 0.100.

Я считаю, что это связано с настройкой локали в модуле. Но locale - это лексическая прагма (согласно man-странице), и она не используется в скрипте. Что здесь происходит?

1 Ответ

5 голосов
/ 09 июля 2010

Прагма use locale является лексической, но если модуль Evil :: Module использует POSIX::setlocale, то изменение языкового стандарта является глобальным.

См. perldoc perllocale для получения дополнительной информации.

...