in reply to using redo in an if/else statement

redo works inside loops. An if isn't a loop. Wrap the whole thing in something along the lines of:

while( 1 ) { ## prompt user if( $whatever eq 'done' ) { last; } if( $whatever eq 'try again' ) { next; } ## deal with other cases }