Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Predefining sub Parameters

by moot (Chaplain)
on Jun 22, 2005 at 17:29 UTC ( #469107=note: print w/replies, xml ) Need Help??


in reply to Predefining sub Parameters

If you want to provide a compile-time check that parameters passed to a function are of the correct type, use a prototype:
sub functionname($@$) { ... }
The problem with this example is that perl flattens the @ and second $ parameter into one list, so your function wouldn't know where the second parameter (the @) ends.

There are some techniques in the cookbook and other literature that you might want to investigate, such as mimicking behaviour of built-ins with function prototypes. Some of these techniques can be used to alleviate the problem I've identified above.

You may also think about having your function accept only a hash (actually, a list of arguments your function will treat as a hash), and requiring callers to use named parameters:

sub functionname { my %hash = @_; # Validate keys of hash here } functionname(param1 => 1, param2 => 2, ...);
Did I mention There's More Than One Way To Do It? ;)

Now hiring in Atlanta. /msg moot for details.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://469107]
help
Chatterbox?
[LanX]: yeah but Marto already proposed a new "Lex Sun-D" ...
[karlgoethebier]: the word really exists: http://www. urbandictionary. com/define.php? term=fool
[shmem]: ...possibly involving RTFM
[karlgoethebier]: big surprise!
[Eily]: LanX I try to avoid answering, but I did feel that this one post was going into much detail to prove a false claim (that SHA-1 is secure, I was just wrong about how insecure it is)
[LanX]: ironically...
[LanX]: yeah whatever ... I'm in the favorable condition to already autohiding him ... how can I judge the poor FOOLs who still see his contributions xD
[Eily]: he's been pretty saavy about threads that were implictly about him in the past. I think he might have deliberatly avoiding mentioning it for some reason (he got tired?)
[Eily]: he did mention one of his propositions: basically make it possible to ignore downvotes, by separating them more from the upvotes
Eily translate("Eilish ", "Proper English")

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (8)
As of 2017-07-24 17:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I came, I saw, I ...
























    Results (356 votes). Check out past polls.