in reply to [SOLVED]: eval in perl package

is there any explanation for this behaviour?

Yes. func4 is a closure but func3 is not.