throop has asked for the wisdom of the Perl Monks concerning the following question:

Brethren,

I saw cosmicperl's question about

sub Request(;***$*$) {
and answered because, hey, I know what a prototype is (and why not to use them.)

But, if you didn't recognize (;***$*$), how the heck would you ever RTFM for it?

throop

Replies are listed 'Best First'.
Re: How would you RTFM for this
by FunkyMonk (Bishop) on Oct 13, 2007 at 15:53 UTC
    It's part of a subroutine definition, so you look in perlsub?

Re: How would you RTFM for this
by moritz (Cardinal) on Oct 14, 2007 at 10:49 UTC
    That's why I started the perlhints project for Perl 6.

    The idea is that either ask for a specific symbol (for example '*') and it gives you a list of possible meanings (multiplication, quantifier in regexes, ...).

    The second idea is that you provide it with a piece of code, it uses Perl 6's STD.pm to parse it, and you can get an explanation of each syntactic construct, and where to read more about it.

    I'm currently not working active on it because I don't really know what's the best way to implement it. But as soon as the specs on rules and action stubs get a bit more stable I plan to pursue it further.

      That's why I started the perlhints project for Perl 6.

      I personally believe that this is a fantastic idea. I have thought of it myself, but in the form of a Perl function or method that would do what you propose by extracting the appropriate perldoc documentation as needed - as opposed to yet another external tool. IMHO this would fit nicely in the philosophy of a closer integration between code and documentation and for interactive testing as in the debugger, or pugs itself, not to mention the integration with IDEs and smart editors. After all we can do things like

      pugs> say &map.signature; :(@?2 is copy, @?1 is copy)

      Why shouldn't we be allowed to do

      pugs> say &map.doc; Here goes the explanation for map...

      too?

      So, huh, we will be able to build up our future for our children.