У программиста есть модуль RegionsData
,
в котором хранятся полезные данные о географических регионах.
Программисту понадобилось отфильтровать регионы по некоторому условию:
Увы! При выполнении нет никаких ворнингов, но список почему-то оказывается пустым.
В %REGIONS
точно есть подходящие записи: Лорбанери, Рок
Ну, они точно есть в %RegionsData::REGIONS
.
В программе используется имя %RegionData::REGIONS
,
хотя подразумевается %RegionsData::REGIONS
.
Таблица имен RegionData::
(как и любая другая) доступна,
даже если соответсвующий пакет не был загружен.
А поскольку ошибочное имя используется в коде
дважды, perl даже не выдает предупреждение Name used only once: possible typo
.
На заметку:
use strict
и use warnings
– сильное средство контроля,
но даже с ними Perl остается гораздо более терпимым к ‘неопределенным’ идентификаторам,
чем статически типизируемые компилиуемые языки.
Так что присматривайте за своими именами сами.