Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Facebook Sign In with Google Sign In with OpenID

Categories

We have migrated to a new platform! Please note that you will need to reset your password to log in (your credentials are still in-tact though). Please contact lee@programmersheaven.com if you have questions.
Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

system commands from perl.

JoeMcJoeMc Posts: 55Member
What's the best way to get results from a system command using perl to access any unix/linux shell?

Examples:
a.) system(qq{$command $args | $output_file});
Then read output file data?

b.) @output = `$command $args`;
Then read through array?

c.) Are there any other ways of doing this?

Thanks & Regards,
JoeMc

Comments

  • JonathanJonathan Posts: 2,914Member
    : What's the best way to get results from a system command using perl
    : to access any unix/linux shell?
    :
    : Examples:
    : a.) system(qq{$command $args | $output_file});
    : Then read output file data?
    :
    Yup, but that creates a temporary file that you then have to go and clear up later.

    : b.) @output = `$command $args`;
    : Then read through array?
    This is probably the best way.

    : c.) Are there any other ways of doing this?
    There's also open with a pipe at the end, which lets you use normal file I/O to read from the pipe.

    [code]my $fh;
    open $fh, "$command $args |";
    while (<$fh>) {
    # do something for each line
    }
    close $fh;[/code]

    Jonathan
    ###
    for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");
  • JoeMcJoeMc Posts: 55Member
    : : What's the best way to get results from a system command using perl
    : : to access any unix/linux shell?
    : :
    : : Examples:
    : : a.) system(qq{$command $args | $output_file});
    : : Then read output file data?
    : :
    : Yup, but that creates a temporary file that you then have to go and
    : clear up later.
    :
    : : b.) @output = `$command $args`;
    : : Then read through array?
    : This is probably the best way.
    :
    : : c.) Are there any other ways of doing this?
    : There's also open with a pipe at the end, which lets you use normal
    : file I/O to read from the pipe.
    :
    : [code]: my $fh;
    : open $fh, "$command $args |";
    : while (<$fh>) {
    : # do something for each line
    : }
    : close $fh;[/code]:
    [b][color=Purple]Thanks Jonathan, and sorry for hijacking that other posting on this subject. I kinda feel bad about that. :-)[/color][/b]
    :
    : Jonathan
    : ###
    : for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    : (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    : /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");

Sign In or Register to comment.