sub array_minus (\@\@) { my ( $got, $required ) = @_; my %required; @required{@required}=@required; delete @required{@got}; return values %required; } #### c:\@Work\Perl\monks>perl use strict; use warnings; sub array_minus (\@\@); my @got = qw(blue_shirt hat jacket preserver ); my @required = qw(preserver sunscreen water_bottle jacket); # ---------- as custom function warn "Skipper is missing: ", array_minus(@got,@required); sub array_minus (\@\@) { my ( $ar_got, $ar_required ) = @_; my %required; @required{@$ar_required} = @$ar_required; delete @required{@$ar_got}; return values %required; } __END__ Skipper is missing: water_bottlesunscreen at - line 11.