Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^2: $foo->bar = 14;

by adrianh (Chancellor)
on Dec 30, 2002 at 09:31 UTC ( #223006=note: print w/replies, xml ) Need Help??


in reply to Re: $foo->bar = 14;
in thread $foo->bar = 14;

One problem with the approach you set forth is that it doesn't survive subclassing.

Eh?

use strict; use warnings; { package Foo; sub new { bless {}, shift }; BEGIN { no strict 'refs'; for my $property (qw/foo bar/) { *$property = sub : lvalue { $_[0]->{$property} }; } } } { package Bar; use base qw(Foo); BEGIN { no strict 'refs'; for my $property (qw/fribble ni/) { *$property = sub : lvalue { $_[0]->{$property} }; } } }; my $o = Bar->new; $o->foo=1; $o->bar=2; $o->fribble=3; $o->ni=4; print join(', ', $o->foo, $o->bar, $o->fribble, $o->ni), "\n"; # produces # 1, 2, 3, 4

or am I missing something?

Replies are listed 'Best First'.
Re: Re^2: $foo->bar = 14;
by dws (Chancellor) on Dec 30, 2002 at 18:52 UTC
    or am I missing something?

    No, I missed something. I was reacting based on past misadventures with something very similar, without having read your code carefully enough. What you've written will indeed survive subclassing, though debugging through those generated methods is still going to be a problem. Mea culpa.

      I'm not the author of the code :-)

      Personally I very rarely generate accessors - not because I dislike generating them, but because I so rarely have a situation where bare-access to the object attributes is appropriate.

      Since many perl coders seem to spend a lot of time worrying about generating accessors I guess I must be weird!

      That said, the times I have generated accessors I've not come across debugging issues. I'm curious what problems you've encountered - can you illustrate?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://223006]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (8)
As of 2016-12-09 15:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (152 votes). Check out past polls.