my $os = `uname`; chop $os; my $cmd = ( $os eq 'SunOS' ) ? '/usr/ucb -auxw' : '/bin/ps -ef'; my @psout = split /\n/, `$cmd`; my @hdr = split /\s+/, shift ( @psout ); my @aoh = (); while (1) { # load ps output into above array of hash... my $fldno = 0; my $tmp = {}; my @fld = ( split /\s+/,( shift( @psout ) || last )); $tmp -> { $hdr [ $fldno++ ] } = shift @fld for @hdr; $tmp -> { COMMAND } .= join ' ', @fld; push @aoh, $tmp; }