####### foo.pl ###################### use Foo; my $o = Foo->new( name => 'Tom' ); ####### Foo.pm ################## package Foo; sub new { my ($class, %args) = @_; my $self = { name => $args{name} }; bless $self, $class; return $self; } sub name { return $_[0]->{name}; } 1;