in reply to Coding for two platforms in one Script
You're being tripped up timing as use happens at compile-time, but everything else in your script (including the logic to determine the OS) happens afterwards during run-time.
To get around this, you can change the uses to a require/import combo ...
if ( $^O eq "MSWin32" ) { require Win32::EventLog; $eventlog = Win32::EventLog->new( "myscript" ); } else { require Sys::Syslog; import Sys::Syslog qw/ :DEFAULT setlogsock /; setlogsock( 'unix' ); openlog( 'myscript', 'pid', 'INFO' ); }
On a side note, there's not much point in importing methods from an OO-based module like Win32::EventLog; $obj->foo should do the right thing if it's a valid method.
Similarly, it's silly to import from non-OO modules if you're just going to call those functions explicity ( Sys::Syslog::openlog() vs openlog()).
--k.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Coding for two platforms in one Script
by BoredByPolitics (Scribe) on Dec 05, 2001 at 23:14 UTC | |
by buckaduck (Chaplain) on Dec 06, 2001 at 01:16 UTC |