in reply to time zones

For me, it works well enough to say:
{ local $ENV{TZ}="GMT+3"; print scalar localtime; }
And I get the time string for GMT+3. Of course, this depends on the behaviour of your system's localtime() function.