The problem with splice is that it would chop the values
out of the original array, and he doesn't want to use a dupe.
This might be the time to use old-timey C-style for:
my @list = ('1','val','2','val2','1','val3');
my $self = { _subfields => [@list] };
my @subs;
for (my $index = 1; $index < @{$self->{_subfields}}; $index+=2) {
push @subs, ${$self->{_subfields}}[$index];
}
# waa-la:
print $_,"\n" foreach (@subs);
It's ugly, but it avoids the duplication. For the cost of
a scalar you could always use
my $aryref = $self->{_subfields};
instead.
-- Frag.