#! perl -slw use strict; use constant TALLY => 'tally.bin'; our $N //= 50; my $tally = chr(0) x (10e6 / 8 ); if( -e TALLY ) { open I, '<:raw', TALLY or die $!; my $tally = do{ local $/; }; close I; } sub genPartNo {{ my $partNo = int( 1e6 + rand( 9e6 ) ); redo if vec( $tally, $partNo, 1 ); vec( $tally, $partNo, 1 ) = 1; return $partNo; }} print genPartNo for 1 .. $N; open O, '>:raw', TALLY or die $!; printf O "%s", $tally; close O;