in reply to Filter log file within time range

Quick and dirty:
use strict; use warnings; while (<DATA>) { my $time = (split /,/)[1]; my ($hr) = $time =~ /^"(\d\d)/; print if $hr>=5 and $hr<=23; } __DATA__ "02-feb-2010","04:59:19;06 ","00:00:15;00 " ,"creeid00402 + ","OY00402W","OY00402W","610D/00","04:00:00;00 ","04:00:14;29.","02 +-feb-2010","04:59:34;06 " "02-feb-2010","04:59:34;06 ","00:29:01;25 " ,"ihw-14ubc-q + ","3316291-","3316291-","610E/00","03:00:00;00 ","03:29:01;24.","02 +-feb-2010","05:28:35;29 " "02-feb-2010","05:28:35;29 ","00:00:15;00 " ,"creeid00402 + ","OY00402W","OY00402W","610D/00","04:00:00;00 ","04:00:14;29.","02 +-feb-2010","05:28:50;29 " "02-feb-2010","05:28:50;29 ","00:00:30;00 " ,"scifim10078 + ","SF10078W","SF10078W","610F/00","02:00:00;00 ","02:00:29;29.","02 +-feb-2010","05:29:21;01 "
If any of your fields could have commas, you'd be better off with a CSV parser, such as Text::CSV_XS.