in reply to Unexpected difference in whitespace parsing in subroutine calls.
The usual suggestion, "use strict; use warnings;". if you d that, you will get warnings, which might lead you to think of something else in this case.
As for the problem, your f() had two different uses in different cases:
Look at this very simple example, it shows how the call back is used.
use strict; use warnings; print sort f (1,2,3); sub f {1}
Another one (guess output first):
use strict; use warnings; print sort f (1,2,3,4,5,6); sub f {($b % 2) <=> ($a % 2)}
|
|---|