Octavian Rasnita wrote: > Hi all > > I want to run a certain perl module by getting the name of the perl > module from a scalar variable like: > > $module ="Test"; > require $module; > > I have read in the POD documentation that I need to use: > > eval {require $module}; > or > eval "require $module";
You need to use the latter. The former won't do what you want. And you need to check for errors. > > But the problem is that I cannot get a value returned by that module. > > The Test module returns a value named $value. > > If I use: > > require Test; > print $value; > > The var $value is printed without problems, but if I call require for > the $module, the var $value is not exported and I cannot use it. require() does not do exporting, so I'm not sure what you're saying here. The following are equivalent: require MyModule; $mod = "MyModule"; eval "require $mod"; > > Is Perl able to run a certain module if getting the name of the > module from a variable, and able to access a value returned by that > module? Not sure what you mean by "returned by that module". Modules are required to return a true value to indicate that they were successfully initialized. If you want that specific value, just assign the results of the require() or eval. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>