in reply to Re^3: reduce like iterators
in thread reduce like iterators

That's why I prefer

$soln[-1] ne $val and push @soln, $val;