#!/usr/bin/perl use strict; use warnings; use MCE::Loop; my $ldif = "file.ldif.bz2"; my $match = "g2ucab"; $/ = ""; open my $fh, "-|", "/usr/bin/bzcat $ldif" or die "open error ($ldif): $!"; MCE::Loop->init( max_workers => 3, chunk_size => 8, use_slurpio => 1, ); mce_loop { my ( $mce, $slurp_ref, $chunk_id ) = @_; open my $local_fh, "<", $slurp_ref; while ( <$local_fh> ) { if ( /uid=$match/m ) { print $_; $mce->last; } } close $local_fh; } $fh; MCE::Loop->finish; close $fh;