Well, it seems to work... So that's certainly a good start.
I use two alternatives for this. It depends on whether I need to know the frequency of items or if I need more set like semantics.
Here is the bag example:
use strict;
use Data::Dumper;
my @items = ('this', 'that', 'that', 'those', 'these', 'them', 'thou')
+;
my $bag;
map {$bag->{$_}++} @items;
print Dumper($bag);
__END__
$VAR1 = {
'these' => 1,
'those' => 1,
'thou' => 1,
'them' => 1,
'that' => 2,
'this' => 1
};
And here is the set example:
use strict;
use Set::Scalar;
use Data::Dumper;
my @items = ('this', 'that', 'that', 'those', 'these', 'them', 'thou')
+;
my $set = Set::Scalar->new(@items);
print Dumper($set->members);
__END__
$VAR1 = 'those';
$VAR2 = 'these';
$VAR3 = 'thou';
$VAR4 = 'them';
$VAR5 = 'that';
$VAR6 = 'this';