http://www.perlmonks.org?node_id=1050599


in reply to untainting regex input

You should open perlretut and search for 'taint'

eg A bit of magic: executing Perl code in a regular expression says:
If the $regexp variable contains a code expression, the user could then execute arbitrary Perl code. For instance, some joker could search for system('rm -rf *'); to erase your files. In this sense, the combination of interpolation and code expressions taints your regexp. So by default, using both interpolation and code expressions in the same regexp is not allowed. If you're not concerned about malicious users, it is possible to bypass this security check by invoking use re 'eval' :