Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: How to have OS specific code sections in Perl

by aitap (Curate)
on Oct 31, 2012 at 18:54 UTC ( [id://1001731]=note: print w/replies, xml ) Need Help??


in reply to Re: How to have OS specific code sections in Perl
in thread How to have OS specific code sections in Perl

Unfortunately, this is not going to work because $LINUX is undef at compile-time:
$ perl if ($^O eq 'linux') { $LINUX=1; }; use if $LINUX, 'MIDI::ALSA' => ('SND_SEQ_EVENT_PORT_UNSUBSCRIBED', 'SND_SEQ_EVENT_SYSEX'); __END__ $ perl -MMIDI::ALSA Can't locate MIDI/ALSA.pm in @INC (@INC contains: /home/aitap/perl5/li +b/perl5/i486-linux-gnu-thread-multi-64int /home/aitap/perl5/lib/perl5 +/i486-linux-gnu-thread-multi-64int /home/aitap/perl5/lib/perl5 /etc/p +erl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/ +perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/l +ocal/lib/site_perl .). BEGIN failed--compilation aborted.
But if the test is done in the BEGIN{} section, everything works (well, not for me because of the absence of the module):
$ perl BEGIN{ if ($^O eq 'linux') { $LINUX=1; }; } use if $LINUX, 'MIDI::ALSA' => ('SND_SEQ_EVENT_PORT_UNSUBSCRIBED', 'SND_SEQ_EVENT_SYSEX'); Can't locate MIDI/ALSA.pm in @INC (@INC contains: /home/aitap/perl5/li +b/perl5/i486-linux-gnu-thread-multi-64int /home/aitap/perl5/lib/perl5 +/i486-linux-gnu-thread-multi-64int /home/aitap/perl5/lib/perl5 /etc/p +erl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/ +perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/l +ocal/lib/site_perl .) at /usr/share/perl/5.14/if.pm line 13. BEGIN failed--compilation aborted at - line 3.
Sorry if my advice was wrong.

Replies are listed 'Best First'.
Re^3: How to have OS specific code sections in Perl
by perltux (Monk) on Oct 31, 2012 at 19:02 UTC
    Thank you, that explains why I had to use:

    use if ($^O eq 'linux'), 'MIDI::ALSA'

    and why any other alternative with $LINUX I tried didn't work!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1001731]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2024-03-28 19:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found