#!/usr/bin/perl use warnings; use strict; my %eventHash = (); while (my $line = ) { chomp $line; my ($time, $event) = split /;/, $line, 2; push @{$eventHash{$time}}, $event; } print "$_\n" for @{$eventHash{56003}}; __DATA__ 56000;some;thing;happened;here;1 56000;some;thing;happened;here;2 56003;some;thing;happened;here;3 56003;some;thing;happened;here;4 56004;some;thing;happened;here;5 56009;some;thing;happened;here;6 56009;some;thing;happened;here;7 56009;some;thing;happened;here;8 56010;some;thing;happened;here;9