Как и @Alundaio сказал , вы печатаете каждую строку как «первую строку», даже если это nil
. while line do
будет аккуратнее.
Но самое главное, вы никогда не совпадете с log-in
и log-out
, потому что вы ищете login
и logout
(без тире).
При желании вы можете рассмотреть возможность сопоставления черточек: log%-?in
, log%-?out
в соответствии с предложением @ Alundaio использовать литеральный синтаксис специального символа или log[-]?in
, log[-]?out
для использования синтаксиса символьного класса в тире.
Согласно ответу @ Alundaio, используйте log%-in
/ log%-out
или log[-]in
/ log[-]out
, если хотите предположить, что тире всегда есть.