Hmmm... my understanding of the BEGIN block is that it is run at compile time, and that it is typically (only ...?) used to make changes that will affect the subsequent compilation. So, do you really intend to use this for the purpose of constructing a window? (There is also, iirc, an INIT block available, which occurs after compilation but before the run.) Based on my (limited) understanding of the feature, I am surprised that you are trying to do, what you are trying to do, here. And not too surprised that something as extreme as a core-dump might be the result. It could well be that this code is attempting to touch things that are not fully initialized yet. Perhaps this statement should be done elsewhere in the code?
(I was trying to stumble-upon the correct perldoc page ...) Thank you... it’s perldoc perlmod.