http://www.perlmonks.org?node_id=170504


in reply to Re: Determining Daylight Savings Time
in thread Determining Daylight Savings Time

You don't have to localize all of %ENV:
local $ENV{TZ} = 'GMT';
   MeowChow                                   
               s aamecha.s a..a\u$&owag.print

Replies are listed 'Best First'.
Re: (MeowChow) Re2: Determining Daylight Savings Time
by Juerd (Abbot) on May 30, 2002 at 21:22 UTC

    You don't have to localize all of %ENV: local $ENV{TZ} = 'GMT';

    Please test before posting. Localizing a single %ENV value will not work as expected.

    { local $\ = "\n"; print scalar localtime; { local $ENV{TZ} = 'GMT'; print scalar localtime; } print scalar localtime, ", which is wrong."; }
    yields:
    Thu May 30 23:19:56 2002 Thu May 30 21:19:56 2002 Thu May 30 21:19:56 2002, which is wrong.
    Update: environment: Debian GNU/Linux sid x86, Perl 5.6.1

    - Yes, I reinvent wheels.
    - Spam: Visit eurotraQ.
    

      It works on both my OpenBSD and Linux perl 5.6.1 and 5.00503. What platform are you testing on?
        
      { local $\ = "\n"; print scalar localtime; { local $ENV{TZ} = 'GMT'; print scalar localtime; } print scalar localtime, ", which is right."; } Thu May 30 16:36:26 2002 Thu May 30 21:36:26 2002 Thu May 30 16:36:26 2002, which is right.
         MeowChow                                   
                     s aamecha.s a..a\u$&owag.print