It seems like you are using Win32::MsgBox to report a tracing log instead of for error conditions, etc. I picture the user having to click on 100 pop-up messages after your program ends (or do you really show only one message box per run?). Perhaps instead you could have a side window with a scrolling text box and append your messages there as the program runs.