構文 |
|
bless リファレンス,パッケージ名 bless リファレンス |
返り値 |
|
指定したパッケージに所属したリファレンス |
説明
- リファレンスを指定したパッケージ名のパッケージに所属するようにします。
- パッケージ名を省略すると現在のパッケージに所属するようになります。
- オブジェクト指向プログラミングを行うために使用されます。
使用例
#!/usr/bin/perl
use strict;
use warnings;
package Person;
# コンストラクタ
sub new {
my $class = shift;
my $name = shift;
bless {
name => $name,
}, $class;
}
sub name {
my $self = shift;
$self->{name} = shift if @_;
return $self->{name};
}
sub print_name {
my $self = shift;
print "name: ", $self->name, "\n";
}
package Main;
my $foo = Person->new('Foo!');
my $bar = Person->new('Bar!');
$foo->print_name;
$bar->print_name;
print "\n";
$foo->name('Foo?');
$foo->print_name;
print "\n";
my $foo_name = $foo->name;
print $foo_name, "\n";
#!/usr/bin/perl
use strict;
use warnings;
package Person;
use Moose;
has 'name' => (isa => 'Str', is => 'rw');
sub print_name {
my $self = shift;
print "name: ", $self->name, "\n";
}
package Main;
my $foo = Person->new(name => 'Foo!');
my $bar = Person->new(name => 'Bar!');
$foo->print_name;
$bar->print_name;
print "\n";
$foo->name('Foo?');
$foo->print_name;
print "\n";
my $foo_name = $foo->name;
print $foo_name, "\n";