package pujHa'ghach::Dotlh; # Translator notes: Dotlh = status # Ideally this should be le'wI' - Thing that is exceptional. ;) # Unfortunately that results in a file called .pm, which may cause # problems on some filesystems. use strict; use warnings; use base qw(autodie::exception); sub stringify { my ($this) = @_; my $error = $this->SUPER::stringify; return "QaghHommeyHeylIjmo':\n" . # Due to your apparent minor errors "$error\n" . "lujqu'"; # Epic fail } 1; __END__ # The following was a really neat idea, but currently autodie # always pushes values in $! to format them, which loses the # Klingon translation. use Errno qw(:POSIX); use Scalar::Util qw(dualvar); my %translation_for = ( EPERM() => q{Dachaw'be'}, # You do not have permission ENOENT() => q{De' vItu'laHbe'}, # I cannot find this information. ); sub errno { my ($this) = @_; my $errno = int $this->SUPER::errno; warn "In tlhIngan errno - $errno\n"; if ( my $tlhIngan = $translation_for{ $errno } ) { return dualvar( $errno, $tlhIngan ); } return $!; } 1;