package MyPackage; sub new { return bless {},shift; # create an empty object of class MyPackage } sub called { my (@args) = @_; print "called with args @args\n"; } package main; MyPackage::called(1,2,3); # call as a normal subroutine MyPackage->called(1,2,3); # call as a class method my $object = MyPackage->new(); # create object $object->called(1,2,3); # call as an object method.