use warnings; use strict; { package LineNumber; sub TIESCALAR { bless {}, shift } sub FETCH { (caller)[2] } } tie my $LINE, 'LineNumber'; print "Line $LINE\n"; print "Line $LINE\n";