#!/usr/bin/perl -w use strict; { package Tie::IncScalar; sub TIESCALAR { my $class = shift; my $self = shift || 0; return bless \$self, $class; } sub FETCH { my $self = shift; $$self++; } sub STORE { my $self = shift; $$self = shift; } } tie my $x, 'Tie::IncScalar'; $x = 0; print "Case: 1 (good)\n"; print $x for 1..10; print "\n"; $x = 0; print "$x" for 1..10; print "\n\n"; $x = 0; print "Case: 2 (good)\n"; print " $x" for 1..10; print "\n"; $x = 0; print " " . $x for 1..10; print "\n\n"; $x = 0; print "Case: 3 (good)\n"; print " $x " for 1..10; print "\n"; $x = 0; print " " . $x . " " for 1..10; print "\n\n"; $x = 0; print "Case: 4 (yikes)\n"; print "$x " for 1..10; print "\n"; $x = 0; print $x . " " for 1..10; print "\n\n"; __END__