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

Re: OO automatic accessor generation

by gnosti (Friar)
on Nov 13, 2009 at 05:43 UTC ( #806868=note: print w/ replies, xml ) Need Help??


in reply to OO automatic accessor generation

Hi Neighbor,

You write that the code you post is your first attempt at a Perl class. As a learning exercise, I think it's valuable to experiment with rolling (or stealing) your own. Perl has a minimal, to me elegant way to get object behavior.

If you'll be playing around a bit, you might like rewriting you class a few different ways. For my simple-minded application, Audio::Nama, I found Object::Tiny's accessors and class creation to be a good starting point. I filled out Alias++'s basic code with simple set() and dump() methods, spent a few days hacking together some YAML-based serialization routines and was on my way. I may change over to Mouse or Moose at some future time.

I found that a good environment to learn the types of compile and runtime errors I would get, how subclassing works, etc.

Regarding your code, first, redefining a subroutine is no big deal: if it's convenient to do so, do it and suppress the warning:  no warnings 'redefine'. It's your first class, after all.

Also you may like a more legible format for your default initializations:

package DataTable; sub new { my $class = shift; my $self = { tablename => undef, columns => [], indices => {}, datatypes => [], lengths => [], ... }; return bless $self, $class; }

All with a grain of salt and some monastery-brewed beer. When it comes to coding style, I am a youngster here.


Comment on Re: OO automatic accessor generation
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (10)
As of 2014-07-14 09:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (257 votes), past polls