Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

After seeing characterstics of private in perl it reminded me of a project I had been working on where I had used the following to create a private like method:

package Foo; use strict; use warnings; my $_init_ = sub { my $self = shift; print STDERR ref($self) . "::_init_ called\n"; }; sub new { my $type = shift; my $class = ref($type) || $type; my $self = { attribute1 => undef, attribute2 => undef, }; bless $self,$class; $self->$_init_(); return $self; } 1;

And then the usage went like this:

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use lib "./"; use Foo; my $foo = new Foo(); print Dumper(\$foo),"\n";

And I was able to subclass as needed, such as:

package Bar; use strict; use warnings; use base qw( Foo ); 1;

With the useage similar to the Foo usage:

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use lib "./"; use Bar; my $bar = new Bar(); print Dumper(\$bar),"\n";

My question is, will this cause problems down the line when the application as a whole gets really complex? Is this safe and if not, why?

"Never be afraid to try something new. Remember, amateurs built the ark. Professionals built the Titanic."

In reply to Private methods by crouchingpenguin

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or or How to display code and escape characters are good places to start.
Log In?

What's my password?
Create A New User
Domain Nodelet?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (2)
As of 2021-09-19 15:23 GMT
Find Nodes?
    Voting Booth?

    No recent polls found