Anonymous monk seems to be spot on about this being a command line argument problem, though it extends beyond just quoting. One of the links above discusses how on MsWin platforms Java takes all of the elements of String[] args and concatinates them into a single string before passing them onto the exe file. It is then up to the exe to decide how it wants to split that single string back into arguments. See http://bugs.sun.com/view_bug.do?bug_id=4064116 (this is one of the links in a reply above, but I thought I'd make it more explicit).

This is going to make it quite difficult to pass one liners to perl via -e. As a work around, if you are dead set on running short sequences of Perl commands without a script, you could have a script whose sole purpose was to take arguments and combine them into valid Perl code. The following script takes raw command line arguments and assumes that they are Perl tokens. Also if you continue to have problems with quote characters you can use qq{....} instead of double quote characters.

# put shebang needed for system here, i.e. call to ratlperl use strict; use warnings; # assume each command line argument is a Perl token eval join(' ', @ARGV);

If the above script was called "runOneLiner.pl", then you would call cqperl runOneLiner.pl  print qq{Hello World\\n}. Even if this is broken into arguments at every whitespace, it will still recombine into a valid command by the time it gets passed to eval


In reply to Re^9: Running perl from java by ELISHEVA
in thread Running perl from java by abramia

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.