in reply to using redo in an if/else statement

It is clearer to use LABELS with redo and next... it only is used in the context of BLOCKS vs what you were trying to do inside a single statement. Get a copy of Randal Schwartz's Perl Book It will help loads.
THAT: { # Ask for input print "What is the Part Number that you would like to look up?\n"; # Get it my $PartNumber = <STDIN>; # See if it's empty print "There was no input" if ($PartNumber eq "\n"); # Execute next Block THIS: { print "What is the Revision level for $PartNumber"; my $Revision = <STDIN>; # Pattern match or test until finished redo THIS if($Revision =~/rev/g); last THAT if($Revision=~/bored/g); # or Repeat the part look-up again redo THAT; } }
I left using next to your own discovery...