in reply to Tk::Image delete method

Without knowing too much about Tk, I would think that deleting the image before calling MainLoop is a no-go because you are deleting it while the app is running! And deleting it after the MainLoop (to be called when main window exits) it is a no-go too because by that time a lot of things would have been destroyed.

I think it would be best if you created a destroy-window button which will callback a function to do all the cleanup for you including deleting memory. Alternatively specify a sub to be called whenever the main window is destroyed, a la Re: $mw->OnDestroy and Dialog Box

You may have a tiny bit of a scoping problem with your callback not being able to see $image declared inside the while loop.

bw, bliako