Octavian Rasnita wrote at Fri, 07 Jun 2002 05:00:33 +0200:
> ...
> The important code with problem is:
>
> if ($^O =~ /MSWin/i) {
> print "The OS is: $^O";
> #This line is not printed because the OS is Linux but the following line has
>problems
> use Net::SMTP;
> ...
> How can I avoid Linux complaining that there is no Net::SMTP module installed even
>though I've
> tested not to be necessary?
>
The problem is that a use Net::SMTP; statetement is evaluated at compile time.
That means even if you write something like
if (0) {
use foo;
}
The compiler will try to load foo;
You can avoid it with using require:
if ($^O =~ /MSWin/i) {
...
require 'Net::SMTP';
Net::SMTP::import();
}
Require is evaluated at run time.
Note that the import call is necassary.
Best Wishes,
Janek
PS: BTW, it's better when the subject gives a short description of the problem.
Of course, you're asking What am I doing wrong ? because you posted in beginners.cgi.
:-)
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]