Note that readln() cannot support string terminators