You only fixed one of the two problems I mentioned On Jun 1, 2015 8:21 AM, "Chris Welch" <welch.ch...@gmail.com> wrote:
> Ah - really sorry, that is what I'm doing, just in the test I knocked up > quickly to demonstrate, I forgot that bit: > > my $tz_name = "Europe/London"; > printf( "Is %s valid? %d\n", $tz_name, DateTime::TimeZone::is_valid_name( > $tz_name ) ); # Still prints Is Europe/London valid? 0 > > Apologies....! > > > On 1 June 2015 at 13:14, Eric Brine <ikeg...@adaelis.com> wrote: > >> The proper usage is >> >> DateTime::TimeZone->is_valid_name($name) >> >> not >> >> DateTime::TimeZone::is_valid_name >> >> You need to call it as a method, and you need to pass the name to check. >> >> >> On Mon, Jun 1, 2015 at 8:10 AM, Chris Welch <welch.ch...@gmail.com> >> wrote: >> >>> Hi >>> >>> I'm sure I'm doing something completely stupid, but am baffled with >>> these results I'm getting. I'm getting a user to select a timezone and the >>> is_valid_name check is *always* coming back false - for my example I'm >>> using 'Europe/London', but I've tried a few in different categories with >>> the same result. >>> >>> Testing I've done: >>> >>> my $timezone_name = "Europe/London"; >>> printf( "Is %s valid? %d\n", $tz_name, DateTime::TimeZone::is_valid_name >>> ); # Prints Is Europe/London valid? 0 >>> >>> This is in contrast to my own tests, where I mimic what is_valid_name is >>> doing: >>> >>> my $tz = try { >>> local $SIG{__DIE__}; >>> DateTime::TimeZone->new( name => $tz_name ); >>> }; >>> >>> print $tz && $tz->isa('DateTime::TimeZone') ? 1 : 0; # Prints 1 >>> >>> I can't see why one would print 1 and the other 0, as as far as I can >>> tell, they're essentially doing the same thing - but there must be >>> *something* different! Obviously I could use my test in the production >>> environment, but then I still wouldn't understand why the results are >>> different and aside from the fact that I'd like to understand why, that may >>> lead to unexpected results in future. >>> >>> Thanks >>> >>> >>> Chris >>> >> >> >