in reply to Check if element in One Array Exist in Other Array

If you really are always comparing things to a single "source" array that doesn't change, you should just make it a hash instead of an array. That's basically what Ovid does in his subroutine, but doing it in the sub means you re-build the hash every time you call it.

So, wherever you actually put values into your source array, instead of doing it this way:

@source = ( ... );
just do it this way:
%source = map { $_ => undef } ( ... );
Then your check_array sub is just the for loop:
sub check_array { my ( $array, $source ) = @_; for ( @$array ) { return if ( ! exists( $$source{$_} )); } return 1; }