I realize this is not at all portable, but one could use
the wc -l
*nix command to get the total number of
lines, pick from that number randomly, then open
the file and while
until you get to that
line. You could even use File::ReadBackwards
the random line is in the second half of the file.
Come to think of it, if you are already willing to
use wc, you could also use tail and head thusly:
$line = `tail +N | head -1 $file.
Ugly, I know. It also opens all kinds of ugly security
holes if $file comes from an untrustworthy source.