Вам необходимо явно указать имя пакета, потому что
strict
включено , а %myRef
не было объявлено (с использованием my
, our
или use vars
) в этой области или любой включающей области
Вы не не нуждаетесь в имени пакета в предыдущем блоке, поскольку strict
отключен в этом блоке.
Если вы добавите строку my %myRef;
(или our %myRef;
, если вы хотите, чтобы она была видна вне текущего файла и пакета) перед блоком no strict
, то вы будете больше не нужно явное имя пакета, и вам не понадобится no strict
внутри блока.
И no warnings
уже излишен, поэтому я бы порекомендовал его удалить. В этом блоке нет ничего, что могло бы генерировать предупреждение в любом случае.