10.13. Simple Prompting
There are few things more frustrating than firing up a program and then sitting there waiting for it to complete its task, only to realize after a few minutes that it's actually been just sitting there too, silently waiting for you to start interacting with it: # The quit command is case-insensitive and may be abbreviated... Readonly my $QUIT => qr/\A q(?:uit)? \z/ixms; # No command entered yet... my $cmd = $EMPTY_STR; # Until the q[uit] command is entered... CMD: while ($cmd !~ $QUIT) { # Get the next command... $cmd = <>; last CMD if not defined $cmd; # Clean it up and run it... chomp $cmd; execute($cmd) or carp "Unknown command: $cmd"; } Interactive programs should always prompt for interaction whenever they're being run interactively: # Until the q[uit] command is entered... CMD: while ($cmd !~ $QUIT) { |