package Exception; sub TIESCALAR { bless {}, $_[0] } sub STORE { print "Setting the value of ", '$@', "\n" } sub FETCH { 42 } package main; tie $@, 'Exception' or die "Unable to do what you want\n"; my ($foo, $bar) = (0, 0); eval { $foo = 42 / $bar }; print "The value is : $@\n"; $@ = 'blah '; print "Now the value is : $@\n";