Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re^2: How to remove the certain element of an object

by vagabonding electron (Curate)
on Feb 04, 2013 at 16:23 UTC ( #1016969=note: print w/replies, xml ) Need Help??

in reply to Re: How to remove the certain element of an object
in thread How to remove the certain element of an object

Dear sundialsvc4

thank you! Of course you are right. If the search element is not in the array then $idx is -1 and the subroutine just removes the last element of the array.

A quick solution could be to add the line

return @{$_[0]} if $idx == -1;

above "splice"

Here is a version which should be more readable:

sub purge_this_one { my $aref = $_[0]; my $searched = $_[1]; my $idx = first_index { $_ == $searched } @$aref; return @$aref if $idx == -1; splice( @$aref, $idx, 1 ); return @$aref; }

Thanks again!

Update:Well, it is not enough since the subroutine does not tell if it does not purge anything. It should warn at least. I take it home and try to make it better. Thank you for noticing this. Update:Removed some private lyric from the original text.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1016969]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2022-12-09 03:50 GMT
Find Nodes?
    Voting Booth?

    No recent polls found