# Here's what you have. sub new { my ($class, $callback) = @_; my $self = { COUNTER => 0, HASHTYPE => TYPE0 }; bless $self, $class; if ($callback) { $self->{CALLBACK} = \&$callback; } else { $self->{CALLBACK} = \&nocall; } return $self; } # Start with this instead, maybe sub new { my ($class, $callback) = @_; $callback ||= \&nocall; my $self = { COUNTER => 0, HASHTYPE => TYPE0, CALLBACK => $callback, }; bless $self, $class; }