Ссылка на массив Perl всегда перезаписывает себя в цикле

Я пытаюсь прочитать некоторые числа из текстового файла и сохранить его в виде двухмерного массива. Я читаю строку и вставляю в другой массив как ссылку на массив. Но я заметил, что основной массив имеет только последнюю строку во всех строках. Как я могу исправить это? Заранее спасибо. Это часть, я делаю это.

open IN, "a.txt";
@b=();

while (<IN>)

 { 
  $t =$_; 
  @a = split /\s+/,$t; 
  push(@b, \@a); 
 }

1 ответ

Решение

Всего у вас есть только два массива. Вы хотите один на линию, плюс @b, my создает новую переменную каждый раз, когда она выполняется, поэтому вы можете использовать следующее:

my @b;
while (<IN>) { 
    my @a = split;
    push @b, \@a; 
 }

Кстати, вы всегда должны использовать use strict; use warnings;,

Другие вопросы по тегам