package Invalid; use base qw(HTML::Form); use strict; # || loose(XP); sub new { my $class = ref($_[0]) || $_[0]; shift; my $self = $class->SUPER::new(@_); return(bless($self,$class)); } sub your_overwritten_routine { my $self = shift; ... and the rest of your code ... return $something; } "True value";