On Fri, 2002-04-12 at 04:26, Piers Cawley wrote:
> Trey Harris <[EMAIL PROTECTED]> writes:
> 
> > I think I've missed something, even after poring over the archives for
> > some hours looking for the answer.  How does one write defaulting
> > subroutines a la builtins like print() and chomp()? Assume the code:
> >
> >   for <> {
> >      printRec;
> >   }
> >   printRec "Done!";
> >
> >   sub printRec {
> >      chomp;
> >      print ":$_:\n";
> >   }
> 
> You could take advantage of subroutine signatures and multi-dispatch
> 
>     sub printRec()     { printRec($_) } # No args, therefore no new topic.
>     sub printRec($rec) { .chomp; print ":$rec:\n" } # 1 arg

I think was he was saying is that your first printRec would not have a
$_ available to it (lexically scoped, as I understand it).

You've got a problem here, which I don't think there's a mechanism for.
Perhaps

        sub printRec(->$rec)

I'm just throwing that out, but some way to say that the argument
defaults to getting the topic would seem to be called for.


Reply via email to