Object - class toString() - method File - class, inherits Object open(:$file) - metod ( $file paramerer optional as it could have been send using File's constructor) close() - method Stat - Inherits File getSize() - method getModTime() - method #### use Object::File; my $file = File->new("bah.mp3"); my $size = $file->getSize(); #### use Object::File; use Data::Dumper; my $file = File->new("bah.mp3"); print Dumper($file->find_methods()); #### package Object; use strict; use warnings; use lib "."; sub new { my ($class) = @_; my $self = { _objectname => $class, }; my @sub_modules = glob("./Object/" . $class . "/*.pm"); # Load sub modules for the class foreach (@sub_modules) { #print $_ . "\n"; my ($pluginName) = $_ =~ /(\w+).pm/; #print "Class: " . $class . "\n"; require "./Object/$class/$pluginName.pm"; } bless $self, $class; return $self; } sub toString { my $self = shift; return $self->{'_objectname'}; }