Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change


by diotalevi (Canon)
on Mar 06, 2006 at 14:26 UTC ( #534689=note: print w/replies, xml ) Need Help??

in reply to Re^4:
in thread

I objected most to the use of prototypes everywhere. I might have found one thing I disliked but I was sure I'd get things wrong if I used it because it's a bag of functions and it'd force some particular syntax on me.

I kind of sort of wish that if the author really believed in those functions that they'd be added to List::Utils directly.

⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

Replies are listed 'Best First'.
by polettix (Vicar) on Mar 06, 2006 at 15:03 UTC
    I don't think to understand thoroughly, but it probably stems from the fact that I'm English impaired.

    About the syntax, it seems to me that the whole point of both List::Util and List::MoreUtils is to try and mimic the celebrated built-ins for dealing with lists, namely sort, grep and map. This is probably why the two modules are "poisoned with prototypes". The net effect is that you don't have to learn a new, particular syntax, just reuse what you're already comfortable with.

    About the interaction between the two modules, AFAIK the author of List::Util was not willing to include other functions inside it, and this basically led to List::MoreUtils. I wouldn't prepare and maintain a module if I wouldn't believe in what I'm putting into it :)

    perl -ple'$_=reverse' <<<ti.xittelop@oivalf

    Don't fool yourself.

      It's blatantly wrong to try to mimic built-in syntax for non-builtins. That is, I already know it's not a builtin and everyone using it is expected to know that. Given that, it ought to act like a user function!

      BTW, I'm just being blatantly opinionated here.

      ⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

        It's blatantly wrong...

        I've been following this thread with curiousity for a bit -- but now I think it's become raw opinion over considered debate.

        Here's what I want to know:

        • Why is it blatant?

        • Why is it wrong?

        Considering that perlsub explicitly discusses using prototypes to mimic builtins, I don't buy blatant. I do know how prototypes can often lead people to unexpected behavior, but sub(&@) seems like one of the safest prototypes to use -- and that's most (though not all) of what's in List::MoreUtils.


        Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://534689]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2018-02-21 00:33 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (274 votes). Check out past polls.