#! perl -slw use strict; use Math::Random::MT qw[ rand ]; open O, '>:raw', 'data/650MB.bin'; print O unpack 'B44', pack'NN', rand( 2**32 ), rand( 2**32 ) for 1 .. 15e6; close O; open O, '>:raw', 'data/600.bin'; print O unpack 'B7', pack 'C', rand(256) for 1 .. 600; close O; #### #! perl -slw use strict; my $data; open my $bigFH, '<:raw', 'data/650MB.bin' or die $!; sysread( $bigFH, $data, -s( 'data/650MB.bin' ) ); close $bigFH; open my $smallFH, '<', 'data/600.bin' or die $!; while( <$smallFH> ) { print STDERR "\n$. "; chomp; my $name = "data/$_.posns"; next if -e $name; open O, '>', $name or die $!; print STDERR "File: '$name' opened"; my $p = 0; while( $p = 1+index( $data, $_, $p ) ) { print O $p; } close O; } close $smallFH;