#! perl -slw use strict; our $GLEN ||= 10; our $TRIES ||= 1000; sub randLine { open my $fh, '<', $_[ 0 ] or die "$_[ 0 ] : $!"; my $p = int( 1 + rand -s $fh ); seek $fh, $p - $GLEN, 0; chomp( my $pick = <$fh> ); chomp( $pick = <$fh> ) while tell( $fh ) < $p; return $pick; } my %stats; for ( 1 .. $TRIES ) { $stats{ randLine( $ARGV[ 0 ] ) }++ ; } print "$_ : $stats{ $_ }" for sort keys %stats;