"Hemond, Steve" wrote:
> Hi people,
>
> I want trap the results of 'ps -ef' command.
>
> I first trap the results by splitting the results in scalar values such as $uid $pid
> $ppid $stime, etc...
>
> I would like, for each line returned, to hold these values in an array, so that, for
> each uid, I could return its corresponding pid, ppid, stime, cmd, etc.
>
> What would be the best data structure to use? An hash table in an array? ...
Sound like maybe a hash of hash references. If you think you might "take it on the
road", you might make it an anonymous hash, so you can just mainpulate it
by reference:
my $processes = {};
foreach (split /\n/, `ps -ef`) {
my ($uid $pid $ppid $stime, $etc) = split /\s+/, $_, 5;
$processes->{$ppid} = {
'uid' => $uid,
'pid' => $pid,
...
}
}
I am assuming here that the ppid is a sub-process id. Basically, use any field that
constitutes a GUID as the key for each child hash.
Joseph
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>