I can't think of any reason why we need $! here.

Wouldn't `==` always have to eval its arguments anyway?