{ package MyClass; sub new { my ($class) = @_; my $self = {}; return $self; } sub test { print("Hi!"); } } my $o = MyClass->new(); $o->test(); #### Can't call method "test" on unblessed reference #### { package MyClass; sub new { my ($class) = @_; my $self = {}; bless($self, $class); # Added return $self; } sub test { print("Hi!"); } } my $o = MyClass->new(); $o->test(); #### Hi!