, , .
, .
MyTest.pm:
package MyTest;
use strict;
use warnings;
sub new {
my $class = shift;
my %defaults = ( attr => 'asdfa' );
my %args = %defaults, @_;
my $self = {};
bless $self, $class;
while( my ($attr, $value) = each %args ) {
$self->$attr($value);
}
return $self;
}
sub attr {
my $self = shift;
if( @_ ) {
$self->{_attr} = shift;
}
return $self->{attr}
}
sub log {
my $self = shift;
print "Accessed via class: ", $self->attr, "\n";
}
process.pl
use strict;
use warnings;
use diagnostics;
use MyTest;
my $test = MyTest->new();
$test->log;
print "Accessed via main: $test->{_attr}\n";
, Moose. Moose - , Perl, .
"" Perl OOP, perldoc (perlboot, perltoot, perlobj, perlbot perltooc) . , , Perl - .