Jonathan Lang wrote:

How important is it that perl 6 maintains the notion that $foo and
@foo are entirely different things?


Also, there's the matter of "unneccessary paperwork": if the only
thing that I use the return value for is a boolean test, then all of
the effort involved in loading the filenames into a list was wasted
effort.  Is there a way that the "lazy evaluation" concept could be
extended to function return values?   Something like:

Partial Perl 5 implementation:

    sub chmod {
        my ($mode, @files) = @_;

        $mode = _normalize_mode($mode);

        my @failed;
        for my $file (@files) {
            next FILE if chmod $mode, $file;
            push @failed, $file;

        use Contextual::Return;

# at this point, have the sub temporarily suspend operation.

           BOOL   { [EMAIL PROTECTED]  }
           LIST   { @failed   }

You haven't studied the Contextual::Return module closely enough. Lazy evaluation of the different return contexts is precisely what it already does. :-)


Reply via email to