{ package BlahBlah; use Tie::Scalar; @ISA = 'Tie::StdScalar'; sub STORE { ${+shift} = sprintf '%0.2f', pop } } tie my $foo, 'BlahBlah'; $foo = 1; print "$foo\n"; # 1.00 $foo = 1.005; print "$foo\n"; # 1.00 $foo = 1.025; print "$foo\n"; # 1.02 $foo = 0; print "$foo\n"; # 0.00