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