On 6/8/15 10:48 AM, Nagy Tamas (TVI-GmbH) wrote:
> Hi,> > perl -p -i -e 'BEGIN { printf "%c%c%c", 0xEF, 0xBB, 0xBF }' default.xml> perl -p -i -e 'BEGIN { print pack "c3", 0xEF, 0xBB, 0xBF }' default.xml> > Both give the same error:> > Can't find string terminator "'" anywhere before EOF at -e line 1.> > Is it because of Windows CMD? How to get it work?
Yeah, that's probably due to the peculiar command line parsing in
Windows. I happen to be on a Mac, but its shell is the same as
the shell on Linux.
I don't have a Windows machine to test it on, but I think that
it wants double quotes to enclose the script. Any quotes inside
the script either have to be single quotes (if the string doesn't
require variable interpolation),
perl -p -i -e "BEGIN { printf '%c%c%c', 0xEF, 0xBB, 0xBF }" default.xml
or escaped double quotes,
perl -p -i -e "BEGIN { printf \"%c%c%c\", 0xEF, 0xBB, 0xBF }" default.xml
or use a quoting operator,
perl -p -i -e "BEGIN { printf qq{%c%c%c}, 0xEF, 0xBB, 0xBF }" default.xml
That would apply to any Perl one-liner you try to run on Windows.
Most Perl one-liner examples that you are likely to find on the
web assume a Unix-like shell.
I know all that is a digression from your XML problem, but a solution
to that problem might be expressible as a one-liner, also, so it's
important to get past this minor obstacle.
Why do you think you need to put a BOM on your XML file?
--
David Thomas
Sugar Land, Texas
_______________________________________________
Perl-XML mailing list
Perl...@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs