use strict; use warnings; use Tie::Scalar; use base qw(Tie::StdScalar); sub TIESCALAR{ my $class = shift; my $init = shift || 1; bless \$init, $class } sub FETCH{ my $self = shift; print "FETCH: $$self\n"; $$self; } tie my $i, 'main', 1; $i = $i < 5 ? ++$i : 1; print "Finale: $i\n"; # Ausgabe FETCH: 1 FETCH: 1 FETCH: 2 Finale: 2