Always prompt for interactive input .
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) {
# Prompt if we're running interactively...if (is_interactive( )) { print get_prompt_str( ); }# 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"; }