use warnings; use strict; package Fraud; { sub new { return bless {}, shift; } sub login { print "HA-HA, I'm not who you think I am!\n"; } } package Trust; { sub new { return Fraud->new; } sub login { # recently was watching "That 70's Show" print "no login for you, dumbass\n"; } } package main; { my $obj = Trust->new; $obj->login; }