Just another Perl shrine | |
PerlMonks |
Re: Global matching not working as expectedby afoken (Chancellor) |
on Mar 19, 2016 at 10:56 UTC ( [id://1158307]=note: print w/replies, xml ) | Need Help?? |
perl -pe 's/<Last-Modified>(.*)<\/Last-Modified>/`date -d \"$1\" \"+%s\"`/ge&&s/\n//' mydoc.xml Let's hope that mydoc.xml never contains something like this: <Last-Modified>hehe"; rm -rf / ; true "</Last-Modified>NEVER pass unverified user input to a shell (i.e. ``, qx(), system $string, exec $string), and NEVER without quoting problematic characters. And don't hope that all shells have the same quoting rules. They differ even for the common unix shells (see e.g. http://www.in-ulm.de/~mascheck/various/), and it gets very much worse as soon as you leave unix. CMD.EXE and especially COMMAND.COM just cause mental illness. If you want to stay sane, try to avoid the shell. Stay with perl modules, or at least use the list forms of system and exec. perlipc has some examples for safely replacing `` and qx(). Alexander
-- Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
In Section
Seekers of Perl Wisdom
|
|