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. :-)
In reply to Re: How to use modules dynamically?
by Tanktalus
in thread How to use modules dynamically?
by braymond
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |