Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: module advice

by Ovid (Cardinal)
on Jun 10, 2003 at 22:10 UTC ( [id://264878] : note . print w/replies, xml ) Need Help??


in reply to module advice

Regarding your constructor:

sub new { my $proto = shift; my $class = ref($proto) || $proto;

Please do not use ref($proto) || $proto unless you need it. It serves no purpose in your code.

Other than that, while I haven't played with your module, I must say that the basic premise looks like a lot of fun :)

Update: Yeah, what tye said! :)

Cheers,
Ovid

New address of my CGI Course.
Silence is Evil (feel free to copy and distribute widely - note copyright text)

Replies are listed 'Best First'.
Re^2: module advice ($proto)
by tye (Sage) on Jun 11, 2003 at 15:07 UTC

    If you are going to spout this oft-disputed advice, then at least tell them what you want them to use in place of the part you don't want them to use.

    If you are suggesting my $class = shift; instead of the two lines (so no $proto at all), then you should also tell them to document that $obj->new() will silently do ugly things, creating a broken object that will likely cause confused error reports from users of their module.

    Which certainly suggests to me a reasonable "purpose" for using the simple and defensive code that is suggested in the standard documentation, as the original poster did.

    No, I really don't want to rehash this argument for the Nth time in this thread. Some feel strongly that $class = ref($proto) || $proto is a bad thing™. Some feel strongly otherwise. My point was that your incomplete advice in advocating your position was probably not very helpful to the original poster.

    Feel free to advocate what makes sense to you. But please also say what to use not just what to not use and be aware of why this advice is often disputed and let them know what the down side of your suggestion is or link to one of the several long previous discussions of the issue. (:

                    - tye