A co-worker came to me today with a curious error message:
use DateTime;
my $date = DateTime->new( year => 2013, month => 4, day => 15 );
$date->set_time_zone("Australia/Sydney");
print $date->today;'
This code gives the error Can't locate object method "_normalize_nanoseconds"
via package "2013-04-15T00:00:00" at
/usr2/local/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/x86_64-linux-thread-multi/DateTime.pm
line 252.
The package "2013-04-15T00:00:00" is the curious part: It looks like a
stringified DateTime, but who could possibly be stringifying a DateTime object
and then using that as a package name?
Continue reading I Bless You in the Name of the Stringified Object...
At the Bank we have a home-grown ETL framework that we've been using for quite
some time. We recently completed a total rewrite, but unfortunately we left out
a few changes. Had I gotten those changes in 5 months ago, I would have only
had to break the API of about 10 modules. Today, in order to make those
changes, I have to break the API of 122 modules.
What follows is an account of this ordeal, provided for entertainment value
only. There will be a future post that explains some of the things I did to
make this task surmountable.
Continue reading Thoughts while changing the API of a massive framework......