in reply to
Undefined subroutine &abc::abcUtil::PERL_DEBUG
You need to use Exporter and set it up so that &check is exported, and thus can e used in the script or modules that uses it.
Update: MidLifeXis++ pointed out that it's a fully qualified call that goes wrong, so Exporter is likely not the solution.
From the code you have shown I can't figure out what's wrong. But since the code you did show has so many errors (missing semicolon all over), I'd guess that the most likely cause is a mis-spelled package name. If that's not the case, please reduce your problem to a few lines in each file, and post the complete (reduced) code that shows your code.