@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