После введения:Perl: Как предусмотреть двумерный массив?
use strict;
Мой 2-мерный массив не будет работать больше, и я не нахожу описания и не пример в документации, как predeclare их. Итак, что мне делать?
После введения:Perl: Как предусмотреть двумерный массив?
use strict;
Мой 2-мерный массив не будет работать больше, и я не нахожу описания и не пример в документации, как predeclare их. Итак, что мне делать?
Вы объявляете его точно так же, как вы бы 1D массив:
use strict;
use warnings;
my @AoA = (['a', 'b'], ['foo', 'bar']);
print Dumper \@AoA;
$VAR1 = [
[
'a',
'b'
],
[
'foo',
'bar'
]
];
Невозможно дать много полезной помощи из деталей, которые вы даете. Просто включение текста сообщения об ошибке было бы полезно.
В общем, если у вас есть ошибка, которую вы не понимаете, рекомендуется добавить use diagnostics
в ваш код. Это даст вам более подробные объяснения любых возникших ошибок и предупреждений.
(. Но это следует рассматривать как инструмент развития - вы не должны оставлять его в коде, когда он идет в производство)
Как вы заявили об этом, прежде чем использовать 'strict?'? В Perl вы не можете сказать «эй, у меня есть массив, и он двумерный». Все, что вы можете сказать, это «hey, у меня есть массив, вот он:' my @array =(); '. Тогда вы можете начать размещать ссылки на массивы, в этом два делают его двумерным на лету. – Andrejovich
Кроме того, он не работает »не является описанием проблемы. Вы получаете какие-либо сообщения об ошибках? Любые предупреждения? (Используете ли вы предупреждения,', btw?) Какой результат вы ожидаете? Какой результат вы получаете? ** Предоставьте подробности. Поделитесь своими исследованиями ** – Andrejovich
Прежде чем 'use strict', он не был предварительно оглашен. Таким образом, доступ' $ a [$ i] [$ j] 'не был проблемой. Когда он был впервые записан, было написано, когда оно было прочитано в первый раз, оно было прочитано. Теперь, при самом первом доступе, я получаю, конечно, «Глобальный символ» @zelle »требует явного имени пакета в строке ConwaysSpiel.pl 23', и я точно знаю, как Чтобы исправить это, массив должен быть глобальной переменной, поскольку он содержит игровое поле моделирования жизни Конвей. – ubuplex