our $want= 1;
our $filename= "/usr/share/dict/words";
our @randfile= ("/dev/urandom", "/dev/random");
+our $filemaxlen;
sub fail ($) { die "random-word: $_[0]\n"; }
open D, ">/dev/null" or fail("open /dev/null: $!");
$want= $1;
} elsif (m/^\-f/ && length > 2) {
$filename= $'; #';
+ } elsif (m/^\-F(\d+)$/) {
+ $filemaxlen= $1;
} elsif (m/^\-r/ && length > 2) {
@randfile= ($'); #');
} elsif (m/^\-D$/) {
our $w= new IO::File $filename, 'r';
$w or fail("cannot open $filename: $!");
debug("open $filename ok");
-our @words= <$w>;
+our @words;
+if (defined $filemaxlen) {
+ while (@words < $filemaxlen) {
+ my $l = <$w>;
+ last unless defined $l;
+ push @words, $l;
+ }
+} else {
+ @words= <$w>;
+}
$w->error and fail("cannot read $filename: $!");
debug("read $filename ok");