my $hash; while (<$fh>) { next unless m/^(\d{14})/; my $code = $1; ($hash->{$code}->{'CODE'}, $hash->{$code}->{'FIELD2'}, $hash->{$code}->{'FIELD3'}, $hash->{$code}->{'FIELD4'}, $hash->{$code}->{'FIELD5'}, $hash->{$code}->{'FIELD6'}, ... $hash->{$code}->{'FIELD170'}) = unpack( "A14A1A1A1A5A5A30A50A20A1A5A5A5A5...."); } #### ($hash->{$code}->{$name[0]}, $hash->{$code}->{$name[1]}, $hash->{$code}->{$name[169]}) = unpack($fmt);