Help for this page
sub w (\&@) { while (&{$_[0]}()) { &{$_[1]}() } } sub d (\&) { $_[0]; } # then, instead of while (foo) { bar }, you can say w{foo}d{bar};
sub l(\&) { WHILE: while(1) { &{$_[0]}(); } } sub w($) { $_[0] or last WHILE } # then, instead of while (foo) { bar }, l{w foo;bar};