ファイル名:Human.pm
package Human;
our $a; my $c = $a + $b ; |
メンバーデータは パッケージのモジュール内に記述します。
ourでメンバーデータを定義してみましょう。
実行ファイル名:test1.pl
use Human;
my $man = Human->new(); my $man2 = Human->new(); print “–man — “; |
実行結果:
>perl test1.pl–man — Human->calc2 = 3 –man2 — Human->calc2 = 11 –man — Human->calc2 = 11 |
3番目は3ではなくて11になっています。
$man2->set( 5 ,6 );によって$manのデータまで書き換えられています。
つまり、our $a , our $b はオブジェクト$man,$man2の共有変数になっています。
つぎにtest2.plを実行してみましょう。
実行ファイル:test2.pl
use strict; use Data::Dumper; use Human; my $man = Human->new(); $Human::a = 100; $man::a = 40; |
実行結果:
>perl test2.pl Human->calc2 = 3 Human->calc2 = 300 Human->calc2 = 300 Human->calc2 = 300 Human->calc2 = 300 |
ourで宣言したデータに
$Human::a
という記述でアクセスできます。
共有変数なので$manにも$man2にも反映されています。
100+200=300という結果が出ています。
また、
$man::a
という記述ではアクセスできません。
41+52=93という結果は出てきませんでした。