perlで二次元配列の書き方について

[code]

    .#.#....
    .#.#....
    ........
    .....#.#
    .......#
    ......#.
    ........
    .......#
    ........
    ........
    
[/code]

このような10行＊8列計80個セルの入力データ（仮にsample.txt）があります。  
perlでこのsample.txtからデータを読み込んで、一行一列ずつ二次元配列に代入したいです。

つまり＠hairetu[i][j]の形で任意位置の要素を抽出することができるようにしたいです。  
例：  
@hairetu[1][1]は"#"が表示  
@hairetu[3][2]は"."が表示

自分のコードは一行目は1つの要素として認識されてしまったので、うまくいかなかったです。  
コードは以下となります。どういう風に書けばいいのか、プロな方教えて頂ければ幸いです。

[code]

    #!/usr/bin/perl
    
    my @hairetu;
    my $i = 0;
    
    my $file = 'sample.txt';
    open (IN, $file) or die "$!";
    
    while (my $ = <IN>) {
       chomp($data);
       $hairetu[$i] = $data;
       $i = $i + 1
    }
    
    $length = @hairetu;
    # print $length;
    for( $i=0 ; $i<@hairetu ; ++$i )
    {
       print $hairetu[$i] . "\n";
    }
    
[/code]




`while =
<IN>`で読みとった行を`split`で分割(今回の場合は1文字ずつ)しながら"配列の配列"、の行に対して代入していけばよいかと思います。

[code]

    #!/usr/bin/perl
    
    my $file = "sample.txt";
    my @AoA  = (); # 配列の配列(Array of Array)
    my $i    = 0;
    
    open(FH,"<$file") or die;
    
    while( my $line = <FH> ) {
        chomp($line);
    
        # 読み取った行($line)の内容を
        # split(//,$line)で一文字ずつに分割し
        # "配列の配列"の$i行目に"配列"として代入
        $AoA[$i] = [ split(//,$line) ];
    
        $i++;
    }
    
    print "1x1: $AoA[1][1]\n";
    print "3x2: $AoA[3][2]\n";
    
[/code]




`while =
<IN>`で読みとった行を`split`で分割(今回の場合は1文字ずつ)しながら"配列の配列"、の行に対して代入していけばよいかと思います。

[code]

    #!/usr/bin/perl
    
    my $file = "sample.txt";
    my @AoA  = (); # 配列の配列(Array of Array)
    my $i    = 0;
    
    open(FH,"<$file") or die;
    
    while( my $line = <FH> ) {
        chomp($line);
    
        # 読み取った行($line)の内容を
        # split(//,$line)で一文字ずつに分割し
        # "配列の配列"の$i行目に"配列"として代入
        $AoA[$i] = [ split(//,$line) ];
    
        $i++;
    }
    
    print "1x1: $AoA[1][1]\n";
    print "3x2: $AoA[3][2]\n";
    
[/code]

