package TestC;
sub new{
  my $class = shift;
  my $self = {
    a => [],
  };
  return bless $self, $class;
}

----
my $c1 = new TestC;
my $c2 = new TestC;

としたときに $c1 と $c2 の a が同じものになってしまいます。
($c1 で編集すると $c2 も同じになる)
インスタンスごとに配列も別の実態を参照してほしいのですがどうすればよいでしょうか?