in reply to Re^4: Problem with Inheriting a Super Class
in thread Problem with Inheriting a Super Class

This didn't work.

I find that difficult to believe.

With that said, if you must generate accessors by hand (and you're better off using Moose), something like this should work. Please note that you should do this outside of your constructor:

BEGIN { for my $datum (qw( name full_name root_oid plugin_oid full_oid )) { my $sub = sub { my $self = shift; $self->{$datum} = shift if @_; return $self->{$datum}; }; do { no strict 'refs'; *{ $datum } = sub }; } }

If you don't explicitly shift off the invocant within the method, you won't access instance data.


Improve your skills with Modern Perl: the free book.

Replies are listed 'Best First'.
Re^6: Problem with Inheriting a Super Class
by PyrexKidd (Monk) on Sep 20, 2011 at 20:12 UTC

    First, thanks for this example, I now understand what is happening clearly. (I'm still not 100% on exactly what the typeglob is doing, however, this I have a much better understanding.)<bt/> I thought my first try would have solved my problem but when it didn't and all iterations produced the exact same results, without error, that should have been my first clue... Anyway, my real blonde moment is this:
    I created another working copy so I could bang on the code and not worry about messing up the original. I stuck this in my snmp_monitor/brances/ dir. Well, because I was being lazy, I declared my lib path with `use lib '/root/snmp_monitor/trunk';` so when I was making changes under /root/snmp_monitor/branches it was having no effect because the app was still using /root/snmp_monitor/trunk.

    /facedesk

    Thanks for your continued patience

      If I had a dollar for every time I've done something like that, I could pay someone to watch me code and catch those errors.

      Last week I spent several hours trying to find a bug somewhere in Dancer's interaction with Template only to discover that my test case dutifully made a new request, grabbed the response, and then compared the previous request's results to my expectations.


      Improve your skills with Modern Perl: the free book.