in reply to Re^6: Retrieving information from an executable program
in thread Retrieving information from an executable program

You are correct, it seems nothing is populated in @output variable
CID:2301 NAME: Jane STATUS=OK $VAR1 = [];

May you please advice how i can get @output filled by ./retrieve 2301

Replies are listed 'Best First'.
Re^8: Retrieving information from an executable program
by kitifu (Initiate) on Jul 27, 2010 at 04:07 UTC
    I have contacted the program dev who changed their code from cerr to cout and now i can get the output. Please advice if there is anything more need to be done to optimize this code
    !/usr/bin/perl -w use strict; use warnings; use Data::Dumper; my @output = `./retrieve 2301`; chop @output; my ($name, $status, $cid); my %vars = ( 'NAME' => \$name, 'CID' => \$cid, 'STATUS' => \$status, ); for my $line (@output) { my ($key, $val) = split /:/, $line, 2; if ($vars{ $key }) { ${ $vars{ $key } } = $val; } else { warn "Unknown key '$key', discarded"; }; }; my $myID= ${ $vars{ CID } }; my $myStatus=${ $vars{ STATUS } }; my $myName=${ $vars{ NAME } }; print "My name is $myName with status $myStatus ID $myID\n";

    Output
    My name is Jane with status OK ID 2301