From the documentation for use:
Imports some semantics into the current package from the named module, generally by aliasing certain subroutine or variable names into your package. It is exactly equivalent to
BEGIN { require Module; import Module LIST; }
except that Module must be a bareword.
So, given that, we can replace the 'use' with some form of logic structure
BEGIN { if ( ... ) { # require 'CGI::Carp'; require CGI::Carp; CGI::Carp->import('fatalsToBrowser'); } }
alternately, you can place the 'use' within an eval. (but you'll want it inside a BEGIN block, so it runs really early)
As for what to test for, to compare if you're under CGI vs. on a console... I typically test for the existance of $ENV{'SERVER'} or any of the other environmental variables that are set by the webserver when it's running under CGI.
Update: blah...no quotes in require when not giving direct paths to files.
In reply to Re: How to conditionally use CGI::Carp?
by jhourcle
in thread How to conditionally use CGI::Carp?
by argv
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |