use strict; use warnings; my $obj1 = Example->new(); my $obj2 = new Example; my $obj3 = Example->connect(); my $obj4 = connect Example; package Example; # Constructors # (be subclass friendly, even in example code ;) sub new { my $class = shift; $class = ref($class) || $class; # subclass boilerplate. return bless { }, $class; } sub connect { my $class = shift; $class = ref($class) || $class; # subclass boilerplate. return bless { }, $class; }