in reply to changing the position of an element in an array
my $pos; for (0..$#array) { $pos=$_ and last if $array[$_] eq $wanted; } @array[$pos,-1]=@array[-1,$pos];
And what if no one of them matched? (Left as an exercise to the reader)
Update: it was a wonderfully neat solution (which is the reason why I posted it!) to another problem!!
Not just as neat:
my $pos; for (0..$#array) { $pos=$_ and last if $array[$_] eq $wanted; } @array=@array[0..$pos-1, $pos+1..$#array, $pos];
And what if no one of them matched? (Left as an exercise to the reader ;-)
But then if you are sure in advance that one and only one element will match, here's a neat concise solution:
You can patch it so that it works also if the above conditions are not verified, but won't be just as elegant. (Also left as an exercise to the reader!)@array=((grep $_ ne $wanted, @array), $wanted);
<Reveal this spoiler or all in this thread>
|
---|
In Section
Seekers of Perl Wisdom