in reply to $_ unitialized

Because you are using =~
until(!defined($_ = <STDIN>) and /exit|quit|(^\s*$)/i) { }
or
while(<STDIN>){ last if /exit|quit|(^\s*$)/i; }

Replies are listed 'Best First'.
Re^2: $_ unitialized
by ww (Archbishop) on Aug 23, 2009 at 02:02 UTC
    Did you mean "or" ( s/and/or ) in your first example?

    It's pretty hard for $_ to be both (!defined and anything).

Re^2: $_ unitialized
by Anonymous Monk on Aug 23, 2009 at 00:44 UTC
    Also because you are using until block