Dave Whipp wrote:

> Today I wrote some perl5 code for the umpteenth time. Basically:
>
>   for( my $i=0; $i< $#ARGV; $i++ )
>   {
>      next unless $ARGV[$i] eq "-f";
>      $i++;
>      $ARGV[$i] = absolute_filename $ARGV[$i];
>   }
>   chdir "foo";
>   exec "bar", @ARGV;
>
> I'm trying to work out if there's a clever perl6 way to write this
> using pattern matching:
>
>   for @*ARGV -> "-f", $filename {
>     $filename .= absolute_filename;
>   }
>
> Would this actually work, or would it stop at the first elem that
> doesn't match ("-f", ::Item)?
>
> Is there some way to associate alternate codeblocks for different
> patterns (i.e. local anonymous MMD)?
>
>
That's given/when. I seem to recall that C<given> and C<for> do not
topicalize the same way, by design, but my recollection may be dated.

If I'm wrong, then:

for ... { when "-f" { ... }}

If I'm right, then there is probably an argument for a standalone "when"
that uses the default topic, or for some sort of shorthand to coerce a
unified topicalization.

=Austin

Reply via email to