use strict; use warnings; use MCE::Flow; use MCE::Shared; use PerlIO::gzip; my $IN = MCE::Shared->handle( '<:gzip', 'wat.paths.gz' ); my $OUT = MCE::Shared->handle( '>', \*STDOUT ); mce_flow { max_workers => 12 }, sub { while (my $file = <$IN>) { print $OUT length($file).":$file" if length($file) > 142; } }; close $IN; #### use strict; use warnings; use MCE::Hobo; use MCE::Shared; use PerlIO::gzip; my $IN = MCE::Shared->handle( '<:gzip', 'wat.paths.gz' ); my $OUT = MCE::Shared->handle( '>', \*STDOUT ); sub task { while (my $file = <$IN>) { print $OUT length($file).":$file" if length($file) > 142; } } MCE::Hobo->create('task') for 1 .. 12; # do other stuff if desired $_->join for MCE::Hobo->list; close $IN; #### use strict; use warnings; use threads; use MCE::Shared; use PerlIO::gzip; my $IN = MCE::Shared->handle( '<:gzip', 'wat.paths.gz' ); my $OUT = MCE::Shared->handle( '>', \*STDOUT ); sub task { while (my $file = <$IN>) { print $OUT length($file).":$file" if length($file) > 142; } } threads->create('task') for 1 .. 12; # do other stuff if desired $_->join for threads->list; close $IN; #### use MCE::Shared 1.002; mce_open my $IN, "<:gzip", "wat.paths.gz" or die "open error: $!"; mce_open my $OUT, ">", \*STDOUT or die "open error: $!";