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?
cpIn reply to Private methods by crouchingpenguin
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |