http://qs1969.pair.com?node_id=168367


in reply to until loops

Can't you just use an "unless" just the same? Is there an advantage/disadvantage to one or the other?

$year=1900; unless($year==2000){ #notice unless instead of until print "blah blah $year\n"; #now it works; $year++; } print "Done\n";


Michael Jensen
InShift Technologies
http://www.inshift.com
michael@inshift.com

Replies are listed 'Best First'.
Re: Unless vs. Until?
by jeffenstein (Hermit) on May 22, 2002 at 07:03 UTC

    Unfortunately this won't work. The until loop will continue redoing the block until the condition is met. Unless will only execute the block one time, leaving the counter at 1901 instead of 2000.

    Update: crazyinsomniac has pointed out a better way to say this: The unless(condition) statement is saying the same thing as to if( not condition). The until(condition) statement is equivelant to while( not condition).

    That is to say, until() and while() are loops, and will repeat until the condition is met, while if() and unless() are not, and will only execute the block 0 or 1 times. Therefore, you can't trade unless() for until().