in reply to The decorator pattern

The "my $self = shift;" should be removed from the subclassed print() subroutines if you are going to use $_[0] to call the parent class's print().