in reply to how to get the String as regularexpression
Not the way to solve your problem (that would be using File::Find as ptum suggested), but if you find yourself wanting to combine several small, working regexes into a larger, still-working regex, or want to optimize matching several small text snippets, do have a look at grinder's Regexp::Assemble.
grinder has a sample of the module's usage on grinder's scratchpad, and you may also wish to have a look at Why machine-generated solutions will never cease to amaze me.
Purely as an example, say you wanted to optimize the regex in your original question. You might try something like:
use Regexp::Assemble;my $ra = Regexp::Assemble->new->add( '.txt', '.doc', '.xml' );print $ra->re;
which prints:
(?-xism:.(?:doc|txt|xml))
Note that Regexp::Assemble has identified the repeated "." and placed that outside the "or" portion of the regex.
Extending this example to do something (more) useful is left as as exercise for the reader. :-)
HTH,
|
|---|