インスタンス変数

package AA;
use strict;
use warnings;

sub new{
  bless {
    var=>'インスタンス変数'
  },shift;
}

↑通常。

package AA;
use strict;
use warnings;

sub new{
  my ($class) = @_;
  my $self = bless {},$class;
  no strict 'refs';
  my $var = 'インスタンス変数';
  *{$class."::var"} = sub{$var};
  *{$class."::set_var"} = sub{shift;($var) = @_};
  $self;
}

↑no strict 'refs'使ってみたかっただけwww
もちろん$self->{var}ではアクセスできない。直接アクセスを禁止。
「$aa->var」で読みだしができて、「$aa->set_var('インスタンス変数2')」とすると、変数への代入ができる。

mooseの勉強したいなー