note that I see no mention in perlop or perlsyn that evaluation order is undefined, unlike for example the static-var trick which *is* undefined according to the docs. That is a good reason to avoid relying on behavior in maintainable code (since it might break in future versions of perl), but it definitely no reason not to use it in the realm of obfu and obscurity :-)
UPDATE docs != specs. documentation just describes how the thing happens to work. if something is not mentioned in the documentation, then it is undocumented, not undefined.