You could extend bart's hash lookup by building a hash of arrays.
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @list = qw{one two three four one};
my %lookup;
for my $i (0..$#list){
push @{$lookup{$list[$i]}}, $i;
}
print "@{$lookup{one}}\n";
#print Dumper \%lookup;