use strict; my %filecontents = ('entries' => [], 'titles' => [], 'organisms' => [], 'accessions' => [], 'unknown' => [] ); my $filehandle; unless (open($filehandle,") { chomp; if (/^ENTRY/) { push @{$filecontents{'entries'}}, $_; } elsif (/^TITLE/) { push @{$filecontents{'titles'}}, $_; } # and so on ... }