package Item; use Data::Dumper; my @items; # initialise an array of item objects from our data while () { chomp; next unless $_; my $item = new Item; my ($id, $quant ) = split ','; $item->id($id); $item->quant($quant); push @items, $item; } print Dumper \@items; # now sell one of each item for my $item (@items) { $item->quant(-1); } print Dumper \@items; # now print out the id and quantities print "\n\nid quant\n"; for my $item (@items) { print $item->id, "\t", $item->quant, "\n"; } ############################## sub new { my $self = shift; return bless {}, $self; } # get or set id sub id { my ($self, $cid) = @_; $self->{'id'} = $cid if defined $cid; return $self->{'id'}; } # get or set numbers in stock sub quant { my ($self, $change) = @_; $self->{'quant'} += $change if defined $change; return $self->{'quant'} } __DATA__ item 1,10 item 2,20 item 3,30