in reply to How to use modules dynamically?
This piece of code is stolen (and paraphrased) from DB2::db:
In short - I hate eval STR. Anything to avoid it. If I can't avoid it, I'll abuse the heck out of it, but when I can avoid it, I do.# [...] Rather than using # eval STR to eval "require $[...]pm", we do it ourselves. Th +is # is slightly faster (Benchmark shows about 20% faster). (my $pm = $type) =~ s.::./.g; $pm .= '.pm'; eval { require $pm };
When I noticed Corion talk about UNIVERSAL::require, I was tempted to send in a patch similar to the above. I changed my mind solely because I decided against using that module. Neat idea, but my gut tells me it's just not clean (polluting UNIVERSAL, that is, not having a user-friendly, aka string-friendly, require).
That, and I haven't really gone through the effort of rigorously testing it. :-)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How to use modules dynamically?
by gaal (Parson) on Feb 25, 2005 at 07:52 UTC | |
|
Re^2: How to use modules dynamically?
by fireartist (Chaplain) on Feb 25, 2005 at 11:15 UTC | |
by Tanktalus (Canon) on Feb 25, 2005 at 15:26 UTC |