Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^2: disable functions if module not installed

by Anonymous Monk
on Nov 04, 2008 at 12:42 UTC ( #721372=note: print w/ replies, xml ) Need Help??


in reply to Re: disable functions if module not installed
in thread disable functions if module not installed

require returns true on success, and string-eval eats memory :)

BEGIN { $is_magick = eval {require Image::Magick;}; } C:\>perl -e"print require CGI;" 1 C:\>perl -e"print require CGIshamalamadingdong;" Can't locate CGIshamalamadingdong.pm in @INC


Comment on Re^2: disable functions if module not installed
Download Code
Re^3: disable functions if module not installed
by almut (Canon) on Nov 04, 2008 at 13:59 UTC
    require returns true on success,

    yes, and false (undef) otherwise. That was the idea :)

    string-eval eats memory

    Why would that be (in this case, where the string is just a few bytes)?  Any tests/data to prove the claim?

    C:\>perl -e"print require CGI;" 1 C:\>perl -e"print require CGIshamalamadingdong;" Can't locate CGIshamalamadingdong.pm in @INC

    Not sure what this is meant to demonstrate — I thought we were talking about eval "require ...":

    $ perl -E '$ok = eval "require CGI" ? 1:0; say $ok' 1 $ perl -E '$ok = eval "require CGIshamalamadingdong" ? 1:0; say $ok' 0

    (note: swap single and double quotes if you're on Windows)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2015-07-02 00:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (25 votes), past polls