in reply to Re^3: IF and GREP Question
in thread IF and GREP Question

"if ()" imposes a scalar context.

Actually it imposes a boolean context, which is basically the same as scalar context.

"if (@found)" sees undef or zero

An array in boolean context cannot be undef.    In fact, defined doesn't work with arrays anymore.