I help with Melbourne Perl Mongers.
I spend an awful lot of time talking about Perl, and have had my picture in the Australian newspapers with a camel. That's rather scary.
Memoirs of an OSCON rockstar, Day 4 (Human Interfaces for Geeks)
My sleeping pattern at OSCON remains sub-optimal. I've crossed
timezones, and beause there are so many cool tings to do each
evening, and talk practicing and preparation, I find
myself going to bed late and sleeping in. I could
push myself to wake up early, but being sleepy really wrecks
my speaking ability, and after my talk on failure, I've got
a reputation to maintain.
I wake up late in the morning, and receive what was the most exicting e-mail I'd received in the entire conference. It's from Allison Randal:
Would you be willing to repeat "An Illustrated History of Failure" [as a plenary]? It'd be 12:45pm Friday.
Woah!
At this point I should mention that presenting a plenary/keynote at OSCON is one of my lifetime goals. I thought that I'd gain a little fame at 2008, a somewhat bigger audience in 2009, and then if I'm very very lucky I could possibly be considered for a plenary/keynote in 2010. I certainly didn't expect it at my first OSCON! The only lifetime goal I thought I would have had a chance of claiming at OSCON was to play Rock Band.
Today I'm presenting "Human Interfaces for Geeks", aka "Hacking Wetware for Fun and Profit", aka "Paul can't make up his mind as to what this talk should be called". My talk is essentially about how people think, how to make them happy, and how making them happy causes them to do your bidding.
When possible, I try to include conference-specific jokes in my talks. In my failure talk I managed to reference Rod::Logic and Dr. Evil Conway. Here, I figured that enough of my audience would have gone to People for Geeks, so last night I had picked Schwern as my victim. Schwern had kindly provided me with some pictures of him as a zombie, and I spent way too long last night creating Schwern in The Sims 2, taking screenshots, turning him into a zombie, and adding general zombie references.
I arrive at OSCON in time for lunch, rather sad that I've missed some of the morning talks I was really looking forward to. I'm also stuck for where I should go after lunch; Anthony Baxter's running the general lightning talks, and I love lightning talks. Anthony runs the lightning talks at OSDC, and Linux.conf.au, and he does a great job of keeping things moving and amusing. I've got stacks of lightning talks up my sleeve, so attending this should have been a no-brainer.
However, Tim Bunce of DBI fame is giving a talk on Ultimate Perl Code Profiling. I'd spoken briefly to Tim earlier in the week, and he told me new the profiler is awesomely cool. I know that I could learn it in my own time, but that will probably take months before I get a round tuit, or I could just attend Tim's talk and download it into my head in one go.
I attend Tim's talk. It is awesome. I know kung-fu.
I sneak out of Tim's talk during question time, because my talk is next. I find coffee and hurry to the room where I'm presenting.
Amazingly, the talk goes down extermely well. I seem to have been gaining popularity over the conference, and now not only is the room stuffed with people, but there's even a handheld video camera in the audience! It seems the audience wasn't disappointed, giving me a 4.9/5.0 across 16 ratings! Wow.
Next up are the Perl Lightning Talks. I wasn't sure what to expect
from these, as I've seen lightning talks done really bad, but these
are just superb! The Perl community has some great speakers, and
the talks are witty, informative, and well presented. Of course, I
give one on autodie, in case the conference hasn't heard enough
about it already.
The conference ends with Larry's "State of the Onion", and the Perl Foundation Auction. Unfortunately things run a little late, and we lose a few too many audience members before the auction. I pick up a copy of Perl Medic (autographed, yay!), a few assorted other books, and some cool YAPC drinking glasses.
With the main conference over, I head off to a rather exclusive OSCON after-party. Everyone at the party is famous. Everyone. In fact, as r0ml casually comments to me that his son wrote Twisted (python), I realise that everyone and their families are famous.
The party was amazing, although I continue to make the odd faux pas: "Oh, you use identi.ca too?", "No, I'm @evan. I wrote identi.ca." Eventually I get used to the idea that if someone mentions a technology I use, then not only did they write said technology, but they also hold a Nobel Prize, played a role in the original Star Wars, and psychically know what I want to drink next.
Eventually the party gets broken up. It's probably the first time I've ever been to a party so cool that it gets broken up rather than just peters out. I head back to my hotel, discover I'm hungry, and go looking for food at 3am. I find a Mexican place that gives me the most awesome burrito I've ever had in my life, but since I can't for the life of me remember what it was called, when I return there the next day I'm served something which is considerably less than awesome.
Eventually I get back to the hotel, set multiple alarms so I don't miss my talking slot, and sleep.
Memoirs of an OSCON Rockstar, Day 3 (An Illustrated History of Failure)
It's Wednesday, and I'm giving what I consider my good talk. I've
presented it a number of times in Australia, it's gone through
four revisions, and it's nicely polished. That, combined with my
new OpenOffice 3.0beta presenters' screen, and my alluring aussie
accent, I'm practically guaranteed me good reviews. Out of
all my talks, this is the one I'm most looking forward to
presenting. Plus it's the last talk of the day, so I have
a chance to get a decent night's sleep the night before.
Needless to say, everything worked beautifully. I did some self-promotion at my security tutorial, and since there were a number of familiar faces in the crowd, I think it paid off. In fact, it seemed that before there was standing room only. Wow!
My talk finishes, the crowd cheers, I feel like a rock star. R0ml, who gave the amazing keynote the night before, sticks around despite the crowd of people milling around me after the talk, and hangs out at the trade show with me. The trade show had beer, and wine, and food. The food at OSCON was consistently excellent.
After drinks there were Birds of a Feather (BoF) sessions. I arrive at the rethinking CPAN BoF, hosted by Andy Lester, which has a modest but significant attendance. My big gripe about the CPAN is that users are too easily paralysed by the issue of having too much choice, and I think a simple favourites system for users can help here. Andy has much grander plans.
After the rethinking CPAN BoF is the managing user groups BoF, hosted by Gabrielle and Selena! I almost consider this to have been the therapy BoF for those who have the difficult tasks of managing user groups. There were a lot of common themes, and at least for me it was good to know that I was not alone.
After the BoFs, you guessed it... back to my hotel room to work on another talk for the next day!
OSCON, Day 2 (People for Geeks)
Tuesday ended up being only day of the entire conference I didn't
do a presentation, and as such I have some ability to relax and
enjoy the presentations of others. Most importantly, I attend
People for Geeks, a three hour tutorial featuring all my favourite
people, including a few that I didn't know would end up being
my favourites.
The whole of People for Geeks was excellent. Having different presenters on short topics not only fixes the problem of learning fatigue, but makes it easier for presenters to give their best material. My favourite section was probably Selena and Gabrielle's talk on managing user groups and communities, and I was lucky enough to get one of their booklets on the topic.
Tuesday night was the OSCON Extravaganza. r0ml, who I had never seen speak before, gave an outstanding and hilarious talk on software development models, tying in the classics in a most elegant way. Damian Conway follows-up with a talk title I won't try to reproduce here, but it combines all the odd physics I could imagine with Perl. It's also excellent, as we've all come to expect from Damian.
After the excellent presentations are the White Camel awards, to recognise some of the oft unsung heroes of the Perl community. However a few minutes before the awards are announced, I get a sneak preview through a private message on IRC with regards to one of the winners:
(8:26:31 PM) jmcadams: hi paul, are you in the oscon presentation now?
(8:26:44 PM) pfenwick: I sure am!
(8:26:51 PM) jmcadams: good deal
(8:27:04 PM) jmcadams: Jacinta is getting a white camel
(8:27:12 PM) jmcadams: would you accept it on her behalf?
Woah!
Needless to say, I was stunned and delighted to accept the White Camel on Jacinta's behalf. I don't think I even said anything when I accepted it, and usually it's hard to stop me from speaking to an audience given the opportunity.
Jacinta has a little more in her blog about how surprised she was to be given the award.
After the extravaganza, I (unsurprisingly) went back to my hotel room and worked on my slides for my Wednesday presentation. In particular, I asked Damian nicely if I could obtain an image and fragment of code from his talk, so I could use them as a callback in mine. I'm very thankful that Damian agreed, since it provided me with two extra guaranteed laughs from the audience the next day.
Memoirs of an OSCON rockstar, Day 1 (Perl Security)
I wake up and go to Damian Conway's tutorial on programming vim.
After a mere 10 minutes I've already learnt a huge bundle of
new tricks, and have additioanl goodies added to my
At this point the Speakers' Lounge may as well be called the Aussie Lounge. There's Adam Kennedy, Pia Waugh, Laura Thompson, Luke Welling, Anthony Baxter and Stewart Smith all there. Jokes are made about 'OZCON'.
I keep encountering new people at the Speakers' Lounge. They're all famous, but I have to work on my slides. Three hours is a lot of presenting, and I'm really trying to make a good impression. It's my first time at OSCON, and my first time in front of an American audience.
When I present my tutorial, I find my audience is huge. I've got 80-100 people! My presentation ends up being "okay", even though I'm handing out chocolates for anyone who asks a good question, or comes up with a good answer. I'm not happy with my pace (too quick), and fear some of my topics may have not fully sunk home with my audience.
The 3 hour tutorial format is hard. People naturally get learning fatigue, particularly if they're doing theory for a long time without doing practical exercises, or getting up for a break. That's why lectures at University are usually an hour or less, because that's about as long as you feed an audience theory before it stops being absorbed.
One thing I misjudged is how many questions I'd receive. I figured going to OSCON I'm going to have an entire contingent of extremely smart, extremely vocal, high-profile hecklers who'll quiz me on difficult topics. This never happened; I don't know if it's because my audience was polite, or because my hecklers didn't arrive; I suspect it's a combination of both.
Despite the fact that I really thought my tutorial was luke-warm, I found that throughout the week I have plenty of people actively seeking me out and telling me how much they enjoyed the talk. Thank-goodness for the +2 aussie bonus. For those who are curious, I received a 4.55 average rating across 40 evaluations, which isn't too shabby at all.
In the evening I went to have sushi with the Moose and Best Practical crowd. From there, back to the hotel, where Andy Lester catches me and asks if I want to meet at the DoubleTree hotel to help him work on his tutorial the next day. Apparently there'll be beer, and since I'm exhausted from my tutorial, I figure I could really do with a beer.
When I arrive at the DoubleTree, I find there's a big contingent of drinking Australians, along with a decent number of Python people, who, as usual, are all famous. I join the table, swap stories, admire tattoos, and discuss various topics. Andy arrives, but proclaims that he won't be upset at all if I finish another beer or two, so I don't actually help him with slides at all. Oops!
Eventually, I head back to the hotel knowing that I have the rare luxury of not giving a presentation the next day, and can relax a little.
OSCON 2008, Day -1 (Preparation)
The day before the official start of OSCON I spend sleeping-in.
After yesterday's timezone spanning travels, sleep in a real
bed is a luxury. However the rest of the day is spent working
on my tutorial for Monday. It seems that no matter how
much preparation I do beforehand, I've still got last minute changes
I wish to make.
My original room has the light-rail go past, which can be a little noisy, so I ask the hotel if I may be shifted to the quiet side. At this point I discover that having an Australian accent in Portland confers a +2 modifier to all charisma checks. I now have a staff member who thinks well of me, and a room which is not only quieter, but also larger. Nice.
The worst thing about the hotel is the coffee. Or, more correctly, what one is assumed to add to one's coffee. In Australia, we have this thing called "milk" that goes in coffee. Sure, I'd heard stories about "non-dairy creamer", but I always thought that was an urban myth, or perhaps a running joke from some obscure Monty Python skit or cult movie that I've missed. Today, I discover it's real. If you were to ask me all the things I've never want in my coffee, you'd pretty much have the ingredients for "non-dairy creamer". Check it out:
Corn syrup solids, partially hydrogenated soybean oil, sodium caseinate (a milk derivative), dipotassium phosphate, mono and diglycerides, titanium dioxide, silicon dioxide (anti-caking agent), artificial flavor and artificial color (Annatto).
And the best part of non-dairy creamer? After the ingredients, in bold letters, "contains milk".
Since I'm hungry, and wanting a cup of coffee that doesn't contain partially hydrogenated soybean oil and dipotassium phosphate, I decide to do some exploring. There's a mall a short walk away from where I'm staying, so I go there. The mall is cool, it has an ice-skating rink at the bottom, but best of all, it has a Pirate Shop.
I wander into the pirate shop and am greeted with, "Ahoy there matey". As soon as I respond with, "Ahoy there, m'hearty, it be a fine day for plunder'n," discover that I've just become a favoured customer. Having an Australian accent, and speaking like a pirate made me an instant hit. I was asked the sign the Capn's log, and I share tales of adventure on the high seas with the staff. I take the opportunity to pick myself up a cool bandanna that will be perfect for my next "teach Perl like a pirate day" (Today we be learning about @ARrrrGV).
Eventually it comes around to when OSCON pre-registrations are open. I know Adam Kennedy is already at the conference, since I've been speaking to him on IRC. I also know there's a Postgres party, but if I want to come I better turn up soon to get an invite.
I arrive at the convention center, find Adam, find the speakers' lounge, find coffee, and discover that every few minutes I'm either bumping into an Australian, or a Perl person I've known for years but never met in person. A lot of this period is a blur, as the whole conference was spent meeting people; everyone I speak to ends up being famous. However I've got an Australian accent and a cool bandanna, so everyone thinks I'm amazing.
In the Speakers' Lounge I collect my registration pack, and I meet Shirley, who's the speaker liason. Given the sheer number of speakers at the conference, and the fact that speakers are typically troublemakers (myself included), I'm impressed that Shirley appears to not be suffering massive sleep deprivation, and actually has enough time to chat with me.
Having collected all my conference goodies, I decline to go to the Postgres party (despite having obtained an invite), since I'm still not happy with my tutorial preparations, especially since the flight delays have me a day behind on my planning. Most notably, autodie didn't have a stable release, but I was using it everywhere in my slides. Better get that release out!
In hindsight, I'm really sad I missed the Postgres party. Having met a number of members of the Pg community later in the week, I can attest to them being awesomely cool people, and I would have loved to have spent more time with them.
At 2:30am Portland time, I release autodie 1.99 onto the CPAN.
Exhausted, I collapse into bed, knowing I need to be awake early
in the morning for breakfast, and the first real day of OSCON 2008.
Memoirs of an OSCON rockstar, Day -2 (Getting there)
OSCON is over, but for the next few days I'll be backblogging my experiences there. I'll finish with a grand summary, if you don't care about the details, wait until the end.
This year I went to my very first OSCON, in Portland, Oregon. I had always heard lots stories about OSCON, but being in America it's only very far away (I live in Australia), and the airfares are correspondingly very expensive.
This year, I thought I'd give it a shot. Knowing that being accepted as an OSCON speaker would be hard, I took a shotgun approach, and submitted a battery of talks for consideration. I was honoured, and very surprised, when the selection committee asked me to not only do a tutorial (3hrs), but two standard length talks (2 x 45min) as well!
The tutorial is of most importance here, since tutorial presenters are given a modest sum to offset their airfare. Without that, the cost of airfares from Australia would have me thinking twice. The talks were important because they expose me to a larger audience, and I measure my self-worth by the size of my audience.
The trip to OSCON itself was interesting. I decided that I would overcome jetlag before I arrived in Oregon. This meant no sleep the night before, and snoozing as soon as I boarded my 10am flight. As things turned out, my flight was delayed due to "weather" by more than six hours, not leaving until after four in the afternoon. That pushed back my sleeping time quite a bit. Sleeping in the airport wasn't really possible, mainly due to the constant announcements, and the fact that the flight wasn't pushed by six hours in one fell swoop, but was rather agnozingly moved back in bite-sized pieces.
However as the phrase goes, when one is handed lemons, one makes a lemon beverage. Due to the flight delay, all passengers who were paying attention ended up with a $30 "meal voucher". Since the bookstore accepts these, that was most of the payment needed for a 4GB SD card, which lets me pack a lot of entertainment into the palmtop computer I had borrowed from Jacinta.
In my sleep-deprived state I lacked the ability to do very much of technical value, so much of my time was spent exploring the terminal and making friends with the people at the coffee-shop, book-store, and airline staff. The airline staff had both ample meal vouchers and a lack of accountability, and the bookstore agreed to give me a minor discount, so by the time the plane had I arrived, I had accumulated more than $90 worth of goodies (at airport prices).
How did I get so many freebies, you may ask? I had people like me. The airline staff had to watch the gates, but they were bored. I'd offer to bring them coffee, chat with them, and generally be a nice guy. The delayed flight isn't their fault, but they're still the ones to put up with grumpy customers, so being a nice person goes a long way. In the bookstore I just smiled, and asked them about the vouchers, their business, and what options I had available.
Eventually, we got into the air. My original plan was to sleep according to the Portland timezone, wake up near the end of the flight, and work on my talks. However being so tired, and with the addition of an over-the-counter sleeping pill, I ended up sleeping practically the entire flight, waking only for meals. Since this was a 14 hour flight, and I was in economy, I was extremely thankful to be able to sleep through it.
Eventually, in Los Angeles, we touch down, and of course I've missed my connecting flight. I'm given details for a new flight that I've been moved to. I'm happy, the new flight is more direct, although due to the reschedule I have to pick up my bags, get my airline to give me a new ticket voucher, and check that in with my new connecting flight. Sounds easy, right?
Well, it would be, if it were not for the fact that a few hundred people were in the exact same situation as myself. Three hours of waiting in a queue later I've watched some episodes of BattleStar Galactica, made friends with some of the other passengers, and missed my connecting flight. I get yet another connecting flight, and proceed to check-in.
At this point I discover a few things are done differently in America. In any sizeable airport in Australia, when one checks in bags, they are weighed, and then sent on a conveyor belt to be screened and loaded. In America, one gets the weighed, stickers are attached, and then the passengers manually take them to the screening stations.
For anyone who hasn't figured it out yet, the obvious exploit here is to bring an underweight bag, have it weighed, and then pack it full of extra things (such that it would be overweight) before handing it to screening.
The other thing I discover is that flying domestic within the USA comes with much more thorough security checks than flying internationally to the USA. I have to take off my shoes, show my boarding pass, show my passport, and (because I'm special) be frisked down and have the contents of my carry-on baggage unpacked and tested half-a-dozen times for explosives. The security guard doing the extended screening was nice, though. We shared travel stories, swapped a few jokes, and he complimented me on my taste in shirts.
Eventually, eventually, I arrive in Portland. My original itinerary had me touching down in the early afternoon, but with all the delays it's now quite late at night. I catch the light-rail to my hotel. The Portland light-rail rocks. It costs me $2 to go from the airport to my hotel, and that allows me to take my bike (if I had one).
Compared to Australia, hotels in Portland are very affordable. I'd elected for what was essentially the cheapest hotel I could find, figuring that any time I actually spend awake in my room is wasted. The hotel ended up being much nicer than I thought it would be, and included free wireless internet access. As I would discover, practically the whole of Portland has free wireless. There's also some thing called a "Mr Coffee" and "Non-dairy creamer (contains milk)". However in my exhausted state, I figure I'll work them out in the morning.
After what was close to 30 hours of travelling, I finally sleep in a real bed. End of day -2.
autodie 1.99 stable released - codename jarich
I said that I'd get a stable release of autodie out before OSCON. Since OSCON starts in 5 hours, and I intend to use all that time for sleeping, that means it's being released right now.
After 243 commits since project inception, and three and a half months of work, the first stable release of autodie is making its way to the CPAN. This is not marked as a developer release, so you'll be able to install it using the regular CPAN installer, or dh-make-perl, or whatever other tools you prefer to use to manage your modules.
The observant reader will notice this is a 1.99 release, but I've occasionally bandied around the phrase "autodie - It's Fatal 2.0". The 1.99 release is because I expect to get feedback, patches, and bug-swatting done over OSCON, so the hallowed 2.0 version will appear after the 1.99 release has run the gauntlet of being (ab)used by my peers.
That's not to say the 1.99 release isn't good. It's awesome. autodie has already gone through eight dev releases, as well as being used on my own systems. Go and use it.
Note that autodie does overpower (and on some systems, overwrite) the version of Fatal.pm that comes with Perl. Some of the internal interfaces of Fatal have changed to support new functionality. If you've been calling internal Fatal subroutines (ie, things not documented in perldoc Fatal), then you may wish to hold off until the 2.00 release.
The 1.99 release codename is "jarich", after Jacinta "jarich" Richardson, who pretty much gave up an entire week of her time assisting me with talk preparations for OSCON, and doing practically nothing else. Jacinta, you rock.
For those of you at OSCON, I'll be doing a short talk on autodie at the Perl lightning talks, including showing off some of the cool features like building your own language packs and exception systems.
Journey to OSCON / Module releases
It's 4:30pm in Oregon, the jetlag is pretty bad, and I'm drinking yet another coffee to perk myself up. The thing is, I'm still in Australia, where it's stupid-o'clock in the morning. I figure getting the jetlag out of the way now and sleeping on the plane is going to be better than being awake during the plane and whacked in Portland.
At least, that's the plan.
I've spent all of today, and all of yesterday, and all the day before that working on slides. I'm giving 4.5 hours worth of presentations in tutorials and conference talks, and since my presentations tend to move fairly quickly, I have more than one thousand slides prepared. I'm still adding them, or at least I was until brain crashed.
So, as a "reward" for having worked on so many slides, I'm writing code. At 2:30 in the morning. I've pushed out a new release of IPC::System::Simple. It now has capturex() and systemx(), which are variants of capture() and system() that never ever ever use the shell, even if you use one argument. Thanks to ikegami for encouraging me to implement this.
In order to make sure my Perl Security tutorial matches reality, there's also a new release of Proc::UID making its way to the CPAN. It's mainly a tidy-up of the old code, with better documentation, tests, and build system.
What I haven't got out yet is the stable release of autodie. Yes, I know it's what everyone's waiting for. Before I can release it, I want to walk through my TODO list and figure out what really needs doing, and what can be put off. Unfortunately my spell-point meter is dangerously low from the jet-lag, and casting "comprehend project" is rather challenging right now. Instead there's a good chance I'll be making a release while over the Atlantic, and pushing that to the CPAN once I touch-down.
For those hoping to meet me at OSCON, I'll be landing Saturday, but I won't be very sociable until Monday afternoon, after the stress of my tutorial is over.
See me talk at OSCON 2008
Next week is OSCON 2008, and I'll be presenting! Since I'm Australian, and I know Perl, you can expect my presentations to be awesome.
Of course the lightning talks will have other people presenting as well, and should be heaps of fun. Anthony Baxter runs the OSDC lightning talks, and is also running the general lightning talks at OSCON. OSDC has the best lightning talks ever.
On the topic of OSDC, you can see me presenting there as well (paper acceptance is not yet confirmed, actual results may vary), so come to Australia for OSDC from the 2nd-5th December!
autodie 1.11_01 "Aristotle" released - Awesome inheritance
autodie version 1.11_01, codename "Aristotle", is now making its way through the CPAN. The new version contains quite a few exciting changes. You should be able to make and install the new version just like any other module, without having to muck around with @INC. Do be warned it will overpower your existing Fatal.pm, and while it should be completely backwards compatible, there's always the small risk of bugs that I've missed.
In this post, I want to show you why autodie is so cool, particularly with this new release.
Because autodie is smarter than Fatal, a whole bunch of things which are normally bugs start being correct if you're using autodie. As an example, take the following code:
if ( fork() ) {
# This is the parent process.
} else {
# This is the child process.
}
Normally, that code involving fork contains a bug, because fork could return an undefined value to indicate the fork failed. Since we're not checking for undef, our parent would act as a child process, and things are likely to go very badly from there.
However, with autodie we can write:
use autodie qw(fork);
if ( fork() ) {
# This is the parent process.
} else {
# This is the child process.
}
And now the code is correct! autodie knows that fork is allowed to return zero to the child, but returning undef is an error. This is much easier than checking the return values manually.
However in my opinion the best thing about the new release is that we can now cleanly subclass both autodie and autodie::exception, which means we now have a very easy way to slot in our own exceptions frameworks.
Let's start with a trivial example, and pretend we think the old name lethal was a better name for the module. We can just write inside a new lethal.pm:
package lethal;
use base qw(autodie);
1;
And now, we can use lethal the same way we would use autodie.
As a more complex example, let's say that we want to do a bit of localisation. I want an Australian version of autodie that caters to our strong cultural identity. I can write inside bludging.pm:
package bludging;
use base qw(autodie);
sub throw {
my ($class, @args) = @_;
return bludging::exception->new(@args);
}
package bludging::exception;
use base qw(autodie::exception);
# Mate, it's always a good time for a beer in Australia!
sub time_for_a_beer {
return "Now's a good time for a beer.";
}
sub stringify {
my ($this) = @_;
my $original_string = $this->SUPER::stringify;
return "$original_string\n" . $this->time_for_a_beer;
}
1;
I can now write:
use bludging qw(open);
open(my $fh, "<", "fair_dinkum.txt");
If fair_dinkum.txt doesn't exist, I get the Australian-friendly error message:
Can't open 'fair_dinkum.txt' for reading: "No such file or directory" at australia.pl line 1
Now's a good time for a beer.
Of course, one could instead extend the exceptions to use your favourite object framework, wake your sysadmins up in the wee hours of the morning, provide extra diagnostics and stack back-traces, or do anything else you consider worthwhile.
So, what are you waiting for? Grab yourself autodie 1.11_01 from the CPAN now, or (if your mirror is a little behind) you can download the release directly from my server.