in reply to -E behavior with stdin script
You really shouldn't be using -E outside of throwaway single-use code.
The problem with -E is that it's not forward-compatible. It defies the whole feature mechanism by enabling the highest possible feature set, breaking programs the feature mechanism is supposed to protect.
It's great for throwaway single-use code, but not for production code. You should use the appropriate feature set and/or version for your program. -M5.010 / use 5.010; would suffice for the posted example (although all higher versions that exist at this time would also work).
Seeking work! You can reach me at email@example.com