Золотое правило # 1
use strict;
use warnings;
Поначалу это может показаться битвой, но они прививают хорошие практики Perl и помогают выявить многие синтаксические ошибки, которые в противном случае могли бы остаться незамеченными.*
Кроме того, в Perl есть замечательная функция, называемая автовивификацией.Это означает, что $xcHash
и $xcLine
не нужно предварительно определять или конструировать как ссылки на массивы или хэши.
Проблема, с которой здесь сталкиваются, связана с весьма распространенным понятием, что скаляр может содержать массивили хэш;это не так.То, что он держит, является ссылкой.Это означает, что $xcHash->{XC_HASH_LINES}
является ссылкой на массив, а не массивом, поэтому его необходимо разыменовывать как массив с использованием нотации @{...}
.