410503
410503

Reputation: 377

Get current locale name in perl

I want to use thousands_sep in Perl. I can get it using the following code

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

After that I would like to change locale back to previous value, but I don't know how to get locale before I used setlocale. Should I parse it from $ENV{LANG} which is set to en_US.UTF-8 ? Or is there any other method to get locale name?

Upvotes: 5

Views: 1851

Answers (1)

Hasturkun
Hasturkun

Reputation: 36402

setlocale() returns the current locale when called without a second argument, eg.

my $oldlocale = setlocale(LC_ALL);

If you want to set locale according to the current environment, call it with an empty string (ie. "").

Upvotes: 6

Related Questions