http://www.perlmonks.org?node_id=988439


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.

Replies are listed 'Best First'.
Re^2: Undefined subroutine &abc::abcUtil::PERL_DEBUG
by navneet03 (Initiate) on Aug 20, 2012 at 13:28 UTC
    I updated the code in the 2nd file as follows:
    #require "common.pl"; use abc::abcUtil; sub func { abc::abcUtil::check(); }
    Basically removed the use of common.pl. Kept the abcUtil file as unchanged. Now it worked. But I can't keep it this way as have to use this common file. Is it some conflict due to the use of 'require "common.pl" ' in both the files?

      So what does common.pl do?

        common.pl has some common subroutines that can be used by others. PERL_DEBUG is one of them. I have to use common.pl in both the files. It was only for a test that i tried removing it from one file to see if it works and it did.