{ package Tax::Zone; sub new { my $class = shift; my $rate = $_[0]; bless \$rate, $class; } sub add_tax { my $self = shift; my $price = $_[0]; return $price * (1 + $$self); } } my $fooland = Tax::Zone->new(0.20); print $fooland->add_tax(50.00), "\n"; my $barland = Tax::Zone->new(0.15); print $barland->add_tax(50.00), "\n";