Using the readline operator in a for or foreach loop is very slow.
The iteration list of the loop creates a list context,
which causes the readline operator to read the entire input stream before iteration even starts.
Instead,
just use a while loop,
which only reads one line at a time.