I'm trying to find a way of including the modules I need dependant on the OS I find my script running on. I'm trying to avoid having two scripts.
As an example, on WinNT I'm using Win32::EventLog, while on *nix I'm using Sys::Syslog, however, I'm running into problems using require, and have also tried using 'use autouse', but I guess I'm getting something wrong in my delclaration.
Here's an example -
use strict;
my $eventlog; # only used by MSWin32
if ($^O eq "MSWin32") {
no strict "subs";
use autouse Win32::EventLog => qw(Report new);
$eventlog = Win32::EventLog->new("myscript");
} else {
no strict "subs";
use autouse Sys::Syslog => qw(:DEFAULT setlogsock);
Sys::Syslog::setlogsockt ('unix');
Sys::Syslog::openlog ("myscript", 'pid', "INFO");
}
When this is run on WinNT4 I get an Undefined Subroutine error for Win32::EventLog->new.
Can someone please advise me how I should be going about this :-)
Pete
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|