package Err; sub new { return bless { title => 'Really Bad Error', msg => 'Unknown', @_ }; } sub err { my %args = ( %{shift()}, @_ ); print "Error: $args{title}: $args{msg}\n"; } ########### package MyModule; $myerror = Err::new( title =>'My new default title for MyModule.pm', msg => 'MyModules generic error message' ); $myerror->err(); $myerror->err(title=>'Oops',msg=>'something went wrong');