I'm pretty sure you have to do that. For example, if you simply set $ENV{TZ} then localtime() doesn't change in this script:
perl -le 'print scalar localtime; $ENV{TZ} = "Asia/Tokyo"; print scalar localtime'
But in this one it does
perl -MPOSIX -le 'print scalar localtime; $ENV{TZ} = "Asia/Tokyo"; POSIX::tzset(); print scalar localtime'
Damn, okay, thanks.
Can you do another test for me (since I don't have a platform that needs tzset)? Can you tell me how it affects use of local? Here's a test script:
#!/usr/bin/perl -w use strict; use POSIX qw(tzset);
print scalar localtime, $/; { local $ENV{TZ} = "Asia/Tokyo"; tzset; print scalar localtime, $/; } print scalar localtime, $/;
The question is, what does the third print statement print? Do I need to call tzset again after the block?
TIA,
David
-- David Wheeler AIM: dwTheory [EMAIL PROTECTED] ICQ: 15726394 http://www.kineticode.com/ Yahoo!: dew7e Jabber: [EMAIL PROTECTED] Kineticode. Setting knowledge in motion.[sm]