Reading from a stream
There are many different methods that the IO::Handle
class offers us for reading from streams. We already have seen a few in the section Simple input and output in Chapter 2, Writing Code. Here, we'll discuss them in detail and see other alternatives.
Reading a single line
We start with the get
method, which reads a line from the input stream. For example, to read a line from the standard input, call the method on the $*IN
instance, as shown in the next example:
my $line = $*IN.get; say $line;
The program waits for you to enter some text. After the line is complete and the 'Enter' key is pressed, the get
method returns control to the program and then the line is printed to the screen. Alternatively, you may use the facilities of a command-line interpreter to redirect the input streams and passing the contents of the file to a program:
$ perl6 get.pl < get.pl
my $line = $*IN.get;
This time, the program prints the first line of itself.
The $*IN.get
construction in the code...