В Perl я бы хотел посмотреть местное время в определенном часовом поясе. Я использовал эту технику:
$ENV{TZ} = 'America/Los_Angeles';
my $now = scalar localtime;
print "It is now $now\n";
# WORKS: prints the current time in LA
Однако это ненадежно - особенно если я добавлю другой вызов localtime() перед установкой $ENV {TZ}, он прерывается:
localtime();
$ENV{TZ} = 'America/Los_Angeles';
my $now = scalar localtime;
print "It is now $now\n";
# FAILS: prints the current time for here instead of LA
Есть ли лучший способ сделать это?