Subject: | _find_matching_zoneinfo_file returns filename only, causing _from_etc_localtime to fail |
DateTime::TimeZone version 0.36
Perl version 5.005_03
FreeBSD 4.10
On line 151 of my version of DateTime::TimeZone::Local, the variable $real_name is assigned the value of $_ in the subroutine _find_matching_zoneinfo_file. On my system, that is only the filename without any directory component. Thus a timezone of "America/Los_Angeles" only assigns the value "Los_Angeles" to $real_name. When it gets back up into _from_etc_localtime, "Los_Angeles" is not a valid time zone and therefore DateTime::TimeZone->new() fails on line 71.
To fix this, I modified line 151 to read:
$real_name = $File::Find::name;
This returns the file path in $real_name, ultimately ending up with the correct timezone of "America/Los_Angeles" in _from_etc_localtime.
I have not tested version 0.37, but it appears the line in question has not changed in that version.
My version of File::Find does not seem to contain a version number.