package Ball; Ball::Funktionsweise->new(my $funktionsweise); sub new { shift; return bless {@_}; } sub gruesse { print "Hallo, ich bin ein ".$funktionsweise."!\n"; } Ball->new(funktionsweise=>'Fussball')->gruesse; Ball->new(funktionsweise=>'Handball')->gruesse; exit (0); package Ball::Funktionsweise; use Tie::Scalar; use base qw(Tie::StdScalar); sub FETCH { package DB; no warnings; [caller (1)]; my $ball = $DB::args[0]; return $ball->{funktionsweise}; } sub new { tie $_[1], _ _PACKAGE_ _; }