構文 |
|
package 名前空間 |
返り値 |
|
なし |
説明
- ブロックやファイルの残り部分などが引数の名前空間に属することを宣言します。
- 名前空間を分けることで同名のサブルーチンを使用することができます。
使用例
#!/usr/bin/perl
use strict;
use warnings;
{
package Foo;
my $val = 1;
sub print_val {
print $val, "\n";
}
}
{
package Bar;
my $val = 2;
sub print_val {
print $val, "\n";
}
}
Foo::print_val();
Bar::print_val();
#!/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";