Sure all Perl functions probably come in handy, but some more than others. So, it might be an interesting project for PerlMonks to rank functions according to their relative importance and usefulness. This kind of info would be great for newbies like me and perfect for the tutorial section.

For instance, I was just perusing "Learning Perl" for some light reading and came across the dbmopen function. "Is this function really useful?" I thought. "Should I learn it inside and out or should I just make a mental note of it and move on?"

I counted roughly 235 Perl functions so ranking them wouldn't be that onerous. Functions could be ranked with a simple system:
5: Essential, know cold
4: Used frequently, know well
3: Can come in handy on occasions, dog ear this in the Camel book
2: Rarely used, for Monk use only
1: Deprecated/extinct

A similar system would also be great for modules (maybe ranking the "Top 25" with a brief description of when they come in handy). Yes, the rankings would have some subjectivity, but I think it would definitely speed the process of learning Perl.

Replies are listed 'Best First'.
Re: Which Perl functions are ireally/i useful?
by arhuman (Vicar) on Apr 11, 2001 at 11:19 UTC
    You know that this ranking would be subjective.

    But If I can accept the bias for the functions I think it's not good/fair to accept it for the modules :

    Some people have put lots of efforts in their modules,
    who will judge if this one is better than this one ?

    And the one which will be great for you beccause you need it
    or beccause it solved one of your biggest problem
    would be totally useless for other.

    For those reasons (subjectivity, and judging other work)
    I prefer to stay with the current reviews systems :
    Anyone can make a review of a module or comment it,
    it's OBVIOUSLY subjective (it's explicitly bind to ONE author appreciation)
    and anyone can make up his mind by studying different reviews/comments...

    I should think why it doesn't bother me so much function (may be beccause saying 'syscall is not so usefull for a beginner' won't HURT anybody but probably bring me some flames...).
    But the fact is that I like your idea about the functions for 2 reasons :
    • I may give us a view of other programming priorities.
    • It could lead beginner to learn unknown (for them) functions (map for example)
    Anyway for those willing to answer zeno has made a useful piece of code to learn Perl functions
    (or get a list of 206 functions).

    "Only Bad Coders Badly Code In Perl" (OBC2IP)
Re: Which Perl functions are ireally/i useful?
by greenFox (Vicar) on Apr 11, 2001 at 17:07 UTC

    For a lot of functions "useful" will be dependant on what you are using perl to do. I have been flirting with perl for 4 or 5 years now and never used dbmopen until earlier this week when I had cause to "grep" through a dbmfile, finding the right function and an example of its use was a matter of picking up the perl cookbook but a trip to the monastery or even your favourite search engine would have been just as rewarding.

    I suggest you let your programming projects guide your learning and add to it liberally by reading as much as possible, the Monastery is a great place to start that :)

    --
    my $chainsaw = 'Perl';

Re (tilly) 1: Which Perl functions are ireally/i useful?
by tilly (Archbishop) on Apr 11, 2001 at 19:18 UTC
    Learn them on an "as needed" basis and be willing to look in perlfunc (and on CPAN) when you feel the need.

    That said, use tie with a module for a specific dbm rather than dbmopen. Unless you can explain exactly how dbmopen can result in an innocent appearing upgrade causing your databases to all become corrupted, and you are willing to explain why you know it won't happen to you and your data, I would avoid it. (Hint: dbmopen is just a wrapper around tie and AnyDBM_File.)

Re: Which Perl functions are ireally/i useful?
by princepawn (Parson) on Apr 11, 2001 at 21:07 UTC
    I was thinking of a similar type project. Long ago japhy posted some suggestions for how to avoid using regexes unless absolutely necessary, because often index() or substr() or tr() will do the job and do it faster and with less use of a more cryptic mini-langauge.
      Maybe you're referring to this node.

      buckaduck