In Perl, I’d like to look up the localtime in a specific timezone. I had been using this technique:
$ENV{TZ} = 'America/Los_Angeles'; my $now = scalar localtime; print 'It is now $now\n'; # WORKS: prints the current time in LA
However, this is not reliable — notably, if I prepend another localtime() call before setting $ENV{TZ}, it breaks:
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
Is there a better way to do this?
Use POSIX::tzset.