Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Generating accessors for complex structures inside the object

by fenLisesi (Priest)
on Jan 12, 2008 at 13:21 UTC ( #662056=note: print w/ replies, xml ) Need Help??


in reply to Generating accessors and mutators for complex structures inside the object

KSURi,

Having the key Hashref in there may be an indication of a design issue. You may be trying to solve implementation problems stemming from a design problem. Would you care to tell us more about your objects? What other keys are there in your object than Hashref? How about some sample actual data?


Comment on Re: Generating accessors for complex structures inside the object
Select or Download Code
Re^2: Generating accessors for complex structures inside the object
by KSURi (Monk) on Jan 12, 2008 at 14:49 UTC
    Sure, here it is. This is my class constructor which sets primary attributes:
    sub new { my $class = shift || __PACKAGE__; my $self; if ( scalar @_ == 1 ) { ( $self->{RemoteAddr}, $self->{RemotePort} ) = split( ':', shi +ft ); } else { $self = {@_} } foreach (qw(RemoteAddr RemotePort)) { confess $_ . " was not cofigured" unless $self->{$_}; } $self->{FuzzLevel} ||= 1; $self->{Debug} ||= 0; $self->{Path} ||= 'report.html'; $self->{Report} ||= 0; $self->{Ready} = 0; $self->{Socket} = undef; $self->{LastSentFinger} = undef; bless( $self, ref $class || $class ); }
    And these are some additional attributes which will be added later by another sub:
    $self->{FuzzData} = { _Letters => { __data => [ # a lot of data here ], __example => qr/(\w{1})/ }, _Formats => { __data => [ # again data ], __example => qr/(%\w{1})/ }, _Numbers => { __data => [ # and again ], __example => qr/(\d{1)}/ } }; $self->{ProtoData} = { _ActionData => { __ActionCmd => [], __ActionExit => undef, __ActionTemplate => undef }, _LoginData => { __LoginUser => undef, __LoginPass => undef, __LoginSuccess => undef, __LoginTemplate => undef }, _ProtoPresets => { ftp => \&{ $self->_LoadPresetFTP }, http => \&{ $self->_LoadPresetHTTP }, pop3 => \&{ $self->_LoadPresetPOP3 }, smtp => \&{ $self->_LoadPresetSMTP } } };
    So, you can notice that attributes are grouped topically
Re^2: Generating accessors for complex structures inside the object
by KSURi (Monk) on Jan 23, 2008 at 18:55 UTC
    Ok, seems you were right) I've redesigned the object structure and removed all the nested structures. After that it works fine, thank you!

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2014-09-01 23:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (18 votes), past polls