my $main = bless{}, 'main'; # baue einen Rahmen... eval{ $main->foo()->bar(); # Method Chaining print Dumper $main; } || die $@; sub foo{ my $self = shift; $self->{FOO} = 1; $self; # geht return } # setze {BAR} nur wenn {FOO} vorhanden ist sub bar{ my $self = shift; die "Kein Attribut FOO vorhanden!" if not exists $self->{FOO}; $self->{BAR} = 4711; $self; # further chains... }