How to get a random line from a file

How to get a random line from a file?

If found this at www.perl.com

-----------------------------------------
How do I select a random line from a file?  
Here's an algorithm from the Camel Book:

    srand;
    rand($.) < 1 && ($line = $_) while <>;  
----------------------------------------

My file name will be test.txt

How to use this code. How to tell the script code what the file name is and what will be the result line?
 

mmcwAsked:
Who is Participating?
 
andreifConnect With a Mentor Commented:
Please, let me know if this doesn't work or something is not clear
--------------------

In your code data is read from standatd input by "<>"
You can open your text file like usualy and change <> to <FileHandler>

So, code looks like:

open(F, "test.txt");
srand;
rand($.) < 1 && ($line = $_) while <F>;
close(F);


Result is in variable $line;

print $line;
0
 
andreifCommented:
In your code data is read from standatd input by "<>"
You can open your text file like usualy and change <> to <FileHandler>

So, code looks like:

open(F, "test.txt");
srand;
rand($.) < 1 && ($line = $_) while <F>;
close(F);


Result is in variable $line;

print $line;
0
 
andreifCommented:
Please, let me know if this doesn't work or something is not clear
--------------------

In your code data is read from standatd input by "<>"
You can open your text file like usualy and change <> to <FileHandler>

So, code looks like:

open(F, "test.txt");
srand;
rand($.) < 1 && ($line = $_) while <F>;
close(F);


Result is in variable $line;

print $line;
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.