#!/usr/bin/perl use strict; use warnings; use List::MoreUtils qw(first_index); my @array = ( 10, 15, 20, 25, 30, 20 ); my $test = 25; purge_this_one( \@array, $test ); print "@array\n"; sub purge_this_one { my $idx = first_index { $_ == $_[1] } @{$_[0]}; return @{$_[0]} if $idx == -1; # added (s.Update) splice( @{$_[0]}, $idx, 1 ); return @{$_[0]}; }