Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Using the perl modules depends upon the availability of another module.

by ikegami (Pope)
on Dec 08, 2005 at 07:41 UTC ( #515152=note: print w/replies, xml ) Need Help??


in reply to Using the perl modules depends upon the availability of another module.

It would be use Module1 || use Module2, but that doesn't work because use dies on failure. You might try to wrap the use in an eval BLOCK, but that doesn't work because of compile-time vs run-time issues. You could succeed, however, by following the advice given in "use" dynamic module. Alternativly, eval EXPR does the trick:

# Approximate # use Module1 || use Module2; BEGIN { eval qq{ use Module1 }; eval qq{ use Module2 } if not $@; die("Unable to load Module1 or Module2\n" if not $@; }

Replies are listed 'Best First'.
Re^2: Using the perl modules depends upon the availability of another module.
by PodMaster (Abbot) on Dec 08, 2005 at 08:15 UTC
    Alternatively, there is the if module
    use Module1; use if $INC{'Module1.pm'}, 'Module2';
    looks a little nicer, although I don't think I've ever actually used it.

    MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
    I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
    ** The third rule of perl club is a statement of fact: pod is sexy.

      It'll never get to the second line. If Module1 doesn't load, the first use will die.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (5)
As of 2020-06-01 00:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    If programming languages were movie genres, Perl would be:















    Results (177 votes). Check out past polls.

    Notices?