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

Re: Use 'use' in foreach

by shmem (Chancellor)
on Jul 19, 2017 at 11:27 UTC ( [id://1195437]=note: print w/replies, xml ) Need Help??


in reply to Use 'use' in foreach

The only problem is that I can't 'use' them afterwards. I tried:
foreach (@Dependencies){ use $_; }

use needs a bareword. Just do the same you did when testing for the modules:

foreach (@Dependencies){ eval "use $_;1" or die "Can't load '$_'!\n"; }

If you want to avoid string eval for some sort of paranoia (but be aware that require uses string eval under the hood), you can emulate use with require and a call to import():

foreach my $mod (@Dependencies){ (my $file = $mod) =~ s{::}{/}g; $file .= '.pm'; require $file or die "Can't load '$mod' (file '$file')!\n"; $mod->import; }
perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'

Replies are listed 'Best First'.
Re^2: Use 'use' in foreach
by zidi (Acolyte) on Jul 20, 2017 at 07:30 UTC
    Thanks for all the answere. This one works like a charm. Funny how I used eval("use $_") and thought it would only check if it's in my lib. Little did I know it would also "use" if available. Thanks!!!

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2024-04-25 17:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found