in reply to Advice on goto usage?

you need to use labels...
my $count = 0; LOOP: print "help\n"; $count++; die if $count > 10; goto LOOP;
You should note, however, that gotos are considered bad practice, and quite rightly so in my opinion. Programs can be hard enough to follow when they flow logically, but with goto’s you can arbitrarily jump between any part of your program, quickly making a spaghetti nightmare, don’t be tempted unless your program is shorter than my example here.

Replies are listed 'Best First'.
Re^2: Advice on goto usage?
by reasonablekeith (Deacon) on May 05, 2005 at 09:15 UTC
    I'm not sure exactly how you wanted your script to work, but here's my attempt at a more structured version of your code.

    Take notice that I've use 'eq' instead of '=' when comparing the values. '=' is the assignment operator, it doesn't compare two strings. Don't feel bad though, it's one of the biggest gotchas, and _everybody_ has done it at some point.

    You also need to chomp the value from STDIN, as this will always have a new line ('\n') char at the end, and comparing $string eq "whatever" won't work because of the extra character

    print("Type R to re-enter the values or Type E to exit:\n"); my @values; while (<STDIN>) { my $value = $_; chomp($value); last if $value eq 'E'; if ($value eq 'R') { @values = (); print "values have been cleared\n"; } else { push(@values, $value); } } print join(',', @values) . "\n";