use strict; use warnings; package TestModul; use strict; use warnings; use Data::Dumper; sub method1 { print "$_\n" for @_ } sub method2 { print "$_\n" for @_ } sub method3 { my @arr = @_; return bless \@arr, shift; } sub method4 { print Dumper(\@_) } 1; use TestModul; # Jemand, der versucht, ueber ein Objekt eine Methode anzusprechen, # wuerde ein "die" ausloesen - aus diesem Grund verwende ich hier ein # eval{}, damit das Skript nicht abbricht. eval {   my $obj = method1 TestModul(1);   $obj->method2(1); } or warn $!; # Hier bricht das Skript nicht ab, da method3() den Packetnamen # an $obj zurueckliefert. my $obj = method3 TestModul(1); $obj->method4(1);