Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Are prototypes evil?

by Aristotle (Chancellor)
on Sep 02, 2002 at 22:19 UTC ( #194645=note: print w/replies, xml ) Need Help??


in reply to Are prototypes evil?

Prototypes are one of those things that you shouldn't use, unless you understand why you shouldn't use them. Consider
sub foo ($$) { print join " / ", map "'$_'", @_; } my @x = qw(a b); foo(@x);
This will print '2'. Not 'a' / 'b' as one might expect. Prototypes in Perl aren't. They would probably best be called "context coercion templates". A $ will coerce anything into a scalar. List/hash flattening no longer applies. When using a single ($), it's not too bad, but if you use prototypes for more parameters, you can easily surprise users of that function (including yourself). The only "prototype" I'd seriously consider is &, which lets me pass a bare(!) BLOCK that implicitly becomes a subref to a closure to the function.

Makeshifts last the longest.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://194645]
help
Chatterbox?
[talexb]: Good morning. Or, good localtime.
[trahulprajapati]: I'm faicing a problem while navigating from one page to another. here is the discription- 1)I want to login webpage 2) on next page click okay 3)then next page fill some text in textbox 4) submitt. I have tried it by WWW::Scripter:: Javascript as page

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (12)
As of 2017-06-26 15:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (583 votes). Check out past polls.