@lineData = split(/\,/, $line); should be... @lineData = split(/\//, $line); #parse 12/Mar/2004 the above results in: $lineData[0] = 12 $lineData[1] = Mar $lineData[2] = 2004 This is causing your comparison: if($lineData[18] == $date) to be wrong #### my $line_date = "$lineData[0]/$lineData[1]/$lineData[2]"; if($line_date eq $date){ print "equal\n"; }