in reply to RE (2): Filehandle Filter
in thread Filehandle Filter

I love it! :-)

My favorite bit is *new = *TIEHANDLE. That's just inspired.

I have to deduct a style point for unnecessary use of the return operator, and the explicit call of join when "@_" would be both shorter and clearer (IMO).

But to repeat: This is a neat hack. Thanks.

    -- Chip Salzenberg, Free-Floating Agent of Chaos

Replies are listed 'Best First'.
RE (4): Filehandle Filter
by tilly (Archbishop) on Aug 11, 2000 at 05:54 UTC
    Agreed on both points, though I had to ask what you meant partially b/c I often use "" to offset snippets of code. I will make both changes. :-)
RE: RE: RE (2): Filehandle Filter
by tye (Sage) on Aug 11, 2000 at 17:04 UTC

    I disagree strongly about avoiding return. That practice was desirable on old versions of Perl for speed. However, its explicit use makes the code easier to read, especially since you can't declare whether your sub is supposed to return a value or if it just happens to return a value because of the last statement executed.

            - tye (but my friends call me "Tye")
      When return forces you to choose between having the sub be 2 lines or running over 80 char, I think chip is right. If you are comfortable with anon subs, you probably have no problem with implicit return values.

      Most of the time I use return, but in this case I stripped it out. And since the entire point of the code was to show me throwing around a ton of constructs, with each one serving to make the code shorter and clearer to a true expert (though not to co-workers), I had no hesitation in pulling out my return at the end of TIEHANDLE. Which I possibly shouldn't have done.

      Oh well.

        Ah, yes. I couldn't see the original returns so I just made assumptions (insert cliche here) based on the complete lack of them.

        Yes, for subs that do almost nothing but return a value, I agree that no explicit return is often better. Thanks for the clarification.

                - tye (but my friends call me "Tye")