在 perl 中获取当前语言环境名称

Mih*_*ret 4 perl locale posix

我想在 Perl 中使用数千个 sep。我可以使用以下代码获取它

use strict;
use POSIX qw(setlocale locale_h LC_ALL);
setlocale(LC_ALL, "fr_FR");
my $lc=localeconv();
print $lc->{thousands_sep};
Run Code Online (Sandbox Code Playgroud)

之后,我想将语言环境更改回以前的值,但在使用setlocale. 我应该解析它从$ENV{LANG}哪个设置为 en_US.UTF-8?或者有没有其他方法来获取语言环境名称?

Has*_*kun 5

setlocale() 在没有第二个参数的情况下调用时返回当前语言环境,例如。

my $oldlocale = setlocale(LC_ALL);
Run Code Online (Sandbox Code Playgroud)

如果要根据当前环境设置语言环境,请使用空字符串(即"")调用它。