in reply to looking for speed!! large file search and extract
I'd just do
while(<FH>) { push @required, $_ if /^abcde.*partname$/; } [download]
while(<FH>) { print C if /^abcde.*partname$/; } [download]