Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
All,
I have a script foo.pl that reads a tiny XML file into a variable. foo.pl then calls another Perl program bar.pl via system and attempts to give the XML to bar.pl with a command line switch -d:
bar.pl just has the following:#!/usr/bin/perl -w open (XML, $somefile) || die "Could not open $somefile - $!"; my $xmldata; while (<XML>) { $xmldata .= $_; } close (XML); system("bar.pl -p 1234 -d $xmldata");
Unfortunately, the XML file (that foo.pl reads) contains all kinds of yucky shell metacharacters such as quotes, newlines etc:#!/usr/bin/perl -w use Getopt::Std; getopts('d:p:'); our $opt_d; our $opt_p; print $opt_p, "\n"; print $opt_d, "\n";
Only a portion of the xml data is actually making it into $opt_d in bar.pl. Do I have to escape every metacharacter in $xmldata prior to calling bar.pl?<?xml version="1.0"?> <data config="dev"> <SomeTag>data</SomeTag> <AnotherTag>data</AnotherTag> <SQL>select foo from bar where baz = 'something'</SQL> </data>
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: system & shell metacharacters
by Thelonius (Priest) on Jul 23, 2003 at 00:24 UTC | |
by snax (Hermit) on Jul 23, 2003 at 00:46 UTC | |
by bunnyman (Hermit) on Jul 23, 2003 at 15:58 UTC | |
by snax (Hermit) on Jul 23, 2003 at 16:39 UTC | |
by vek (Prior) on Jul 23, 2003 at 18:14 UTC | |
| |
by bunnyman (Hermit) on Jul 23, 2003 at 16:02 UTC | |
|
Re: system & shell metacharacters
by bobn (Chaplain) on Jul 22, 2003 at 23:32 UTC |