クラス変数
package AA; use strict; use warnings; $AA::var = 'クラス変数' sub new{bless {},shift} (略)
↑パッケージに結びつけてることが一目瞭然。外部からは「$AA::var」でアクセス可能
packge AA; use strict; use warnings; use vars qw(var); $val = 'クラス変数' sub new{bless {},shift} (略)
↑usr varsを使う。「$AA::var」でアクセス可能
packge AA; use strict; use warnings; our $var; $val = 'クラス変数' sub new{bless {},shift} (略)
↑our を使う。外部からは「$AA::var」でアクセス可能
packge AA; use strict; use warnings; use constant var => 'クラス変数' sub new{bless {},shift} (略)
↑定数にしちゃう。関数になっているので、外部からは「AA::var」もしくは「AA::var()」もしくは「AA->var」でアクセス可能。インスタンス「$aa」を作成し、「$aa->var」としてもOK
{ package AA; use strict; use warnings; sub new{bless {},shift} my $var = 'クラス変数'; sub var{$var} (略) }
↑レキシカル変数。関数になっているので、外部からは「AA::var」もしくは「AA::var()」もしくは「AA->var」でアクセス可能。インスタンス「$aa」を作成すれば、「$aa->var」でもOK。