Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re^2: Format Style Opinions: my, ternary, subroutine

by jffry (Hermit)
on Dec 04, 2007 at 18:28 UTC ( #654902=note: print w/replies, xml ) Need Help??

in reply to Re: Format Style Opinions: my, ternary, subroutine
in thread Format / Logical Expression / Style Opinions: my, ternary, subroutine, @_

Wow. That is a simpler way to express it. Thanks. I think I'm still in that "everything is a nail" phase with the ternary op.

However, I don't think it is wise to quietly keep going if a 4th argument is passed to it. I don't know about anyone else who might use this sub, but I certainly want to tell myself if I'm using it wrong.

  • Comment on Re^2: Format Style Opinions: my, ternary, subroutine

Replies are listed 'Best First'.
Re^3: Format Style Opinions: my, ternary, subroutine
by webfiend (Vicar) on Dec 04, 2007 at 19:00 UTC

    I understand your nervousness about extra arguments, but I've learned that they don't really matter in Perl. An analogy that comes to mind is filling a glass of water. If I hand you a cup and you pour a gallon of water into it, all I get back is a cup. I might make fun of you for being so sloppy, but who cares? After all, I have the cup of water that I wanted.

    Still, if it is important to you, you can enforce it with logic in your sub.

    sub xyz { my $xxx = shift || croak('Missing xxx parameter'); my $yyy = shift || croak('Missing yyy parameter'); my $ttt = shift; # Enforce length of function parameter list. if (@_) { croak('Too many args for xyz!'); } # ... }

    ... but things like that risk making the code a little harder to read.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (3)
As of 2019-08-19 23:22 GMT
Find Nodes?
    Voting Booth?
    If you were the first to set foot on the Moon, what would be your epigram?

    Results (141 votes). Check out past polls.