Larry Wall wrote:
On Mon, Mar 05, 2007 at 03:56:16PM +1030, Tom Lanyon wrote:
: Larry Wall wrote:
: >On Sun, Mar 04, 2007 at 06:37:34PM -0800, Jonathan Lang wrote:
: >: Rick Delaney wrote:
: >: >Smylers wrote:
: >: >>   for @invoice
: >: >>   {
: >: >>     .process;
: >: >>   } or fail 'No invoices to process';
: >: >
: >: >If that actually works then I'm happy.
: >: : >: It's dependent on .process not returning a false on the final iteration.
: >
: >Er, these days 'for' is more like 'map', and hence returns a list.
: >So it's dependent on at least one iteration returning a non-() value.
: >In fact, if the final iteration returned False, the list would be
: >considered true.
: >
: >Larry
: > : : The situation the thread is referring to has @invoice empty so no : iterations are taking place and all this is a non-issue. :)

You would still get a false positive on a non-null list if all of
the iterations return ().

Larry

I stand corrected. Is there a way to avoid the false positive case?

Sounds like the following will work, but it doesn't seem 'nice'.

for @invoice
{
 .process;
 1;
} or fail 'No invoices to process';

--
Tom Lanyon

Reply via email to