#! perl use strict; use warnings; #------------------------------------------------------------------------------ package EOYStats; #------------------------------------------------------------------------------ sub new { my ($class) = @_; my $this = bless {}, $class; use Data::Dump; dd $this; return $this; } sub do_something { my ($this, $arg) = @_; print "EOYStats::do_something($arg)\n"; } #------------------------------------------------------------------------------ package EOYStats::Sale; #------------------------------------------------------------------------------ use parent -norequire, 'EOYStats'; sub get_stats { my ($this, $arg) = @_; print "EOYStats::Sale::get_stats()\n"; $this->do_something($arg); } #------------------------------------------------------------------------------ package EOYStats::Purchase; #------------------------------------------------------------------------------ use parent -norequire, 'EOYStats'; sub get_stats { my ($this, $arg) = @_; print "EOYStats::Purchase::get_stats($arg)\n"; $this->do_something($arg); } #------------------------------------------------------------------------------ package main; #------------------------------------------------------------------------------ my $obj = EOYStats::Purchase->new(); $obj->get_stats('abc');