#! 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