use strict; use warnings; package Fruit; sub new { my ($class, $fruit) = @_; return bless {total => 0, fruit => $fruit}, $class; } sub Add { my ($self, $number) = @_; $self->{total} = $self->{total} + $number; return "$self->{total} $self->{fruit}" . ($self->{total} != 1 ? 's' : ''); }; package main; my $apple = Fruit->new ('apple'); my $orange = Fruit->new ('orange'); print $apple->Add (1)."\n"; print $apple->Add (3)."\n"; print $orange->Add (1)."\n"; print $apple->Add (5)."\n"; print $orange->Add (1)."\n"; #### 1 apple 4 apples 1 orange 9 apples 2 oranges