in reply to Global matching not working as expected
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
|
|---|