#!/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__ #### Case: 1 (good) 0123456789 0123456789 Case: 2 (good) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 Case: 3 (good) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 Case: 4 (yikes) 1 3 5 7 9 11 13 15 17 19 1 3 5 7 9 11 13 15 17 19