I don't like changing the semantics without changing the syntax.
There's too much of that in perl6 already.  But shouldn't index() be a
method of the string object anyway?

--Bill.


[EMAIL PROTECTED] (Aaron Sherman) writes:
> Something that has long bothered me in C and Perl is the return from
> index. -1 is such a non-answer to me.
> 
> In Perl 6, I was wondering if it would make sense for functions that
> return a count or index to set the truth property as well. For example,
> allowing:
> 
>       if index($subject,"**SPAM**") {
>               warn "SpamAssassin doesn't like you :)";
>       }
> 
> There are a lot of functions that do what index does or which return a
> success count for list of actions (e.g. unlink or chmod). Should all of
> these break with Perl 5's notion of boolean success and use Perl 6's
> model?
> 
> Here's a sample of some of those:
> 
>     # Slow matching for example purposes
>     sub index($string, $substr, int $pos //= 0) {
>       my int $subl = length($substr);
>       my int $strl = length($string);
>       for(int $i = $pos; $i+$subl <= $strl; $i++) {
>               return $i but true if substr($string,$i,$subl) eq $substr;
>       }
>       return -1 but false;
>     }
>     sub all_or_false(&code, @items) {
>       my $ok = 0;
>       for @items -> $_ {
>               $ok++ if code($_);
>       }
>       if $ok == @items {
>               return $ok but true;
>       } else {
>               return $ok but false;
>       }
>     }
>     sub chmod(int $mode, *@paths){
>       return all_or_false {syschmod($_,$mode)} @paths;
>     }
>     # ... also do chown, utime, kill, utime and unlink this way
> 
> -- 
> Aaron Sherman <[EMAIL PROTECTED]>
> http://www.ajs.com/~ajs
> 

-- 
William R Ward            [EMAIL PROTECTED]          http://www.wards.net/~bill/
-----------------------------------------------------------------------------
"Beware the leader who bangs the drums of war in order to whip the citizenry
into a patriotic fervour, for patriotism is indeed a double-edged sword."
        - Julius Caesar

Reply via email to