16/09/11 01:25:09.11 KwUcbZQO0.net
Perlで書くとこれで合ってる?
{
package main_file;
my %TestA = file1::TestClass("引数1");
my %TestB = file1::TestClass("引数2");
${$TestA{pub}} = "てすと1";
${$TestB{pub}} = "てすと2";
$TestA{method}->();
$TestB{method}->();
}
{
package file1;
my $sti = ""; #スタティックな変数をシミュレート
sub TestClass {
my $prv = $_[0]; #クロージャとして機能させる
my $pub = $_[0];
$sti = $_[0];
my $sub = sub {
print "static: " . $sti . "\n";
print "private: " . $prv . "\n";
print "public: " . $pub . "\n";
return();
};
return( method => $sub, pub => \$pub); #パブリックは呼び出し元でアクセスできるようアドレスを返す
}
}