in reply to Check Array Elements

Here's a solution that allows you to change either the full (@files) or required (@need) lists of files. The order you supply the elements to either list doesn't matter: the code handles that for you. Also, filenames are likely to contain characters outside of the [A-Z] range (e.g. a.txt, b.pl, c.png, etc.): I've wrapped these in \Q...\E to avoid interference with the regex.

use strict; use warnings; my @files = qw{ABC DEF GHI JKL MNO PQR STU}; my @need = qw{MNO ABC GHI}; my $need_re = join q{\s.*?} => map { q{\b} . qq{\Q$_\E} . q{\b} } sort + @need; if (join(q{ } => map { qq{\Q$_\E} } sort @files) =~ /$need_re/) { print qq{OK\n}; } else { print qq{NOT OK\n}; }

-- Ken