Description of problem: This program should print out 2 different timestamps : --- #!/usr/bin/perl use POSIX ; $t = time(); $ENV{'TZ'}="US/Eastern"; $east = scalar( localtime( $t )); $ENV{'TZ'}="US/Western"; $west = scalar( localtime( $t )); print $east,"\n", $west,"\n"; --- But it does not: $ ./tz.pl Thu Nov 3 13:54:04 2005 Thu Nov 3 13:54:04 2005 This is because when PERL is compiled with multi-threading enabled, it uses localtime_r, which does not call 'tzset', contrary to the documentation of localtime(3), which does call 'tzset'. This is an upstream perl bug : 26136: localtime(3) calls tzset(3), but localtime_r(3) may not. ( http://rt.perl.org/rt3/Ticket/Display.html?id=26136 ) -- Additional comment from