Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Thoughts on "one function, flexible arguments"?

by daxim (Curate)
on Aug 29, 2019 at 07:03 UTC ( [id://11105218]=note: print w/replies, xml ) Need Help??


in reply to Thoughts on "one function, flexible arguments"?

Use Kavorka (and Moops in case of object-oriented programming) for flexible calling-style (both plain key/value and hashref) and sensible error messages and type constraints. It's the best of the bunch. my_func only contains logic - look at all the boilerplate code you did not have to write!

Positional parameters and named parameters may be mixed, but each parameter cannot be both. It is not a good idea because that would preclude optional parameters, hence this is not supported.

use Kavorka; fun my_func(Str :$message!, Bool :$newline) { print "Message received: $message"; print "\n" if $newline; } my_func(message => 'x'); my_func(message => 'y', newline => 1); my_func({message => 'z'}); my_func(); # Named parameter `message` is required my_func(message => do { require DateTime; DateTime->now }); # Reference bless( {...) did not pass type constraint "Str"

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11105218]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (6)
As of 2024-04-19 11:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found