in reply to Array search

Why does it need to actually have a zero or a one as the result? If you just check the result of the grep you will know whether the element exists or not:

#!/usr/bin/perl -w use strict; my @a; my $f; $a[0] = "a" ; $a[1] = "c" ; $a[2] = "abcd" ; $a[3] = "b" ; ($f) = grep {$a[$_] =~ /^abc$/} (0..$#a);# ? 1 : 0; if ( $f ) { print "YES\n" ; } 1;
Therefore can be greatly simplified to become:

#!/usr/bin/perl -w use strict; my (@f) = qw|a ab abc abcd|; if (grep {/Zabc/} @f){ print 'YES!'; } 1;
Also, if you read grep's perldoc, you will learn more about it:
In scalar context, returns the number of times the expression was true.

Celebrate Intellectual Diversity