Besides the points made in
Re: Loop Control : REDO, you should never use the diamond
with interactive I/O like prompting. Use
<STDIN> instead.
Otherwise, your day will be very miserable when someone types a filename
on the command line. You'll still get all those prompts, and it'll look very
funky.
As an alternative, say print ... if $ARGV eq '-', then you'll only be prompting
if you're actually reading from STDIN. The output-only results printing can
be unconditional.
-- Randal L. Schwartz, Perl hacker