package Muskrat; sub new { my $self = shift; return bless(\$self, $self); } sub AUTOLOAD { my $do = $AUTOLOAD; return if $do =~ /DESTROY/; $do =~ s/.*:://; my $self = shift; my ($target, $reason) = @_; $\ = "\n"; print qq($self $do $target for $reason); } package main; my $me = Muskrat->new; Muskrat->congratulates('FrankG','having a son!');