The program uses the name %RegionData::REGIONS,
although it should be %RegionsData::REGIONS.
Symbol table RegionData:: (just as any other)
is avalable regardless of whether the corresponding package
And since the program uses the wrong name twice,
perl doesn’t produce a warning Name used only once: possible typo.
So, use strict and use warnings are strong,
but even with them perl is much more tolerant to ‘unknown’ identifiers
than languages with static typing.
So keep an eye on your identifiers.