!/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";