http://www.perlmonks.org?node_id=986972


in reply to Trouble Creating a Menu

This has nothing to do with your problem, but you might want to use a HEREDOC for your menu, like so:

do { print <<END; Which computer would you like to cold start? 1 - comp1 2 - comp2 3 - comp3 4 - comp4 5 - comp5 END ...

I downloaded the code as shown and it works exactly as expected. Clears the screen, shows the menu, quits on a valid selection, repeats menu on an invalide selection. Not sure what is wrong with your setup.

Also this might not be very useful or appealing if you can't get the basic script to work, but why not make the menu procedurally generated?

until ($question >= 1 and $question <= @pc) { print "Computer list:\n"; print "$_)\t$pc[$_-1]\n" for (1..@pc); print "Which computer would you like to cold start? "; chomp($question = <STDIN>); }

You can move the until to the front, since $question is undef so it will always run at least once.


$,=qq.\n.;print q.\/\/____\/.,q./\ \ / / \\.,q.    /_/__.,q..
Happy, sober, smart: pick two.

Replies are listed 'Best First'.
Re^2: Trouble Creating a Menu
by at2marty (Novice) on Aug 12, 2012 at 21:40 UTC

    First of all thank you everyone for the responses and the suggestions. I've learned something today.

    In particular, thanks for the HEREDOC suggestion. It just looks a little "cleaner" to me. Also, I will try to move the "until" to the front and see if that seems to clear up my problem.