On Fri, Apr 12, 2002 at 09:40:16AM -0400, Aaron Sherman wrote:
> 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.

If $_ is lexical by default (did larry say this somewhere?), then I'm
sure we can make it dynamic on request ala:

        for $_ is temp <> {
           printRec;
        }

I may have the syntax slightly borked but you get the idea.

I read the original posters message the same as Piers though.

-Scott
-- 
Jonathan Scott Duff
[EMAIL PROTECTED]

Reply via email to