#! perl -slw use strict; use Data::Dump qw[ pp ]; my( undef, @keys ) = unpack 'A18 A17 A13 A*', ; my %hash; while( ) { chomp; my( $id, @fields ) = unpack 'A18 A17 A13 A*'; @{ $hash{ $id } }{ @keys } = @fields; } pp \%hash; __DATA__ Subsystem Group PID Status inetd tcpip 2424886 active xntpd tcpip 3473550 active rwhod tcpip inoperative snmpd tcpip inoperative aixmibd tcpip inoperative hostmibd tcpip inoperative snmpmibd tcpip inoperative #### C:\test>junk17 { " aixmibd" => { Group => "tcpip", PID => "", Status => "inoperative" }, " hostmibd" => { Group => "tcpip", PID => "", Status => "inoperative" }, " inetd" => { Group => "tcpip", PID => 2424886, Status => "active" }, " rwhod" => { Group => "tcpip", PID => "", Status => "inoperative" }, " snmpd" => { Group => "tcpip", PID => "", Status => "inoperative" }, " snmpmibd" => { Group => "tcpip", PID => "", Status => "inoperative" }, " xntpd" => { Group => "tcpip", PID => 3473550, Status => "active" }, }