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.