Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: A Class inside a Perl script?

by arc_of_descent (Hermit)
on Jun 02, 2009 at 09:24 UTC ( #767518=note: print w/replies, xml ) Need Help??

in reply to A Class inside a Perl script?

You're package is named test, but you are blessing into Person.

You should use the following constructor in your packages, which takes care of inheritance too.

sub new { my $proto = shift; my $class = ref $proto || $proto; my $self = {}; # ... # ... bless $self, $class; return $self; }


Replies are listed 'Best First'.
Re^2: A Class inside a Perl script?
by GrandFather (Sage) on Jun 02, 2009 at 11:37 UTC
    my $class = ref $proto || $proto; ... bless $self, $class;

    Don't do that. It generates a function/method that implies both constructor and clone semantics. new should be a class function that generates a new initialised object. An explicit copy or clone method (not class function) should be used to generate a cloned instance of an existing object. new() function: incorrect? and its replies discuss the topic at some length.

    True laziness is hard work

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (10)
As of 2018-06-19 13:06 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (114 votes). Check out past polls.