I've found some documentation on using the perl -s switch to get variables from the command line, but that's not really what I want. I'd like to take a command line argument that is a string that includes a command and a variable in the Perl script to print.

#!/usr/bin/perl use strict; my $host = 'localhost'; # Use 1 of the following lines: #my $output = eval($ARGV[0]); my $output = $ARGV[0]; print "COMMAND: $output\n"; system($output);

Now call with:

script.pl "echo hello"

Output is:

{C} > script.pl "echo hello" COMMAND: echo hello hello

However, try:

{C} > test "echo $host" COMMAND: echo $host $host

I'd like "$host" that is printed to actually be "localhost" as is set in the script (my $host = 'localhost';) that is output. I had a feeling the "eval" would be needed, but that only works when the argument passed is the variable itself (ie: "$host", not "echo $host" and I need it to be the later since I'd like to pass more complex commands other than just 'echo').


In reply to Command Line Arg contains Variable and more by VinsWorldcom

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.