is there any explanation for this behaviour?
Yes. func4 is a closure but func3 is not.
In reply to Re: eval in perl package by hippo in thread [SOLVED]: eval in perl package by MarcusE