Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^2: Beware can for attrs

by adrianh (Chancellor)
on Dec 14, 2002 at 19:11 UTC ( #219884=note: print w/replies, xml ) Need Help??


in reply to Re: Beware can for attrs
in thread (my?) problem with re-blessed references(?)

One problem with %HAS is that you have to duplicate the list of attributes.

# type them once... my %field1; my %field2; my %HAS; # type them twice... {$HAS{$_}=1} foreach qw(field1 field2);

As soon as you start typing field1, field2, etc. more than once you give yourself a problem when you change one and forget to change the other, etc.

For example, a typo in %HAS will foul up your new() method without any warnings, etc... and we suddenly start having some of the effects that we switched to inside-out-objects to avoid ;-)

There's also the fact that you don't want the user to fiddle with every attribute in your object.

This leads to the more general point that I don't think that a totally generic object construction subroutine is practical. What ever method you pick is going to be inappropriate/annoy one or more groups of people.

So - don't sweat it! Do something that works for the code that you're writing. Don't worry too much about the platonic one-true-new. There ain't no such beast :-)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2020-02-18 00:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What numbers are you going to focus on primarily in 2020?










    Results (74 votes). Check out past polls.

    Notices?