続続続・Perl

use strict;

my @a0 = (0, 1, 2, 3);
my @a1 = (10, 11, 12);
my @a2 = (20, 21);
my @x = (\@a0, \@a1, \@a2);
for (my $i = 0; $i < scalar @x; $i++) {
    for (my $j = 0; $j < scalar $x[$i]; $j++) {
        my $p = $x[$i]->[$j];
        if ($j > 0) {
            print ", ";
        }
        print $p;
    }
    print "\n";
}

のようなことをしたいがうまくいかない。すなわち、配列の大きさを知りたい。$x[$i] は ARRAY だと思うが、どうやったら大きさ(Java で言う length)が分かるのだろう。$x[$i]->[$j] が undef になった時、で配列の終わりは検出できるけど、でも、ちゃんと大きさを知りたい。