in reply to Re: Win32:OLE - close documents
in thread Win32:OLE - close documents

My original code works except for closing the document. I agree that the variable names were not correct for the meaning of the object. It is something for me to keep in mind.

As for the use of my, how is it incorrect? I am limiting the scope of the variable. My understanding was that that was a primary use of my. I'll go check Learning Perl to make sure.

Thanks for the help. I really appreciate it.

Replies are listed 'Best First'.
Re^3: Win32:OLE - close documents
by Corion (Patriarch) on Jan 03, 2005 at 14:46 UTC

    You already have the variable $path filled with some value beforehand, but then declare a second variable with the same name, thus overlaying the other variable. This is per se not incorrect, but it is confusing. This is why I chose to rename all the variables to what I interpret their values actually mean.

Re^3: Win32:OLE - close documents
by jplindstrom (Monsignor) on Jan 03, 2005 at 17:57 UTC
    I think it may be that your application variable ($doc in your original example) doesn't go out of scope before the global destruction phase. So the WINWORD.EXE instance hangs around until you do

    undef $doc;

    like Corion said, or if $doc is a lexical and leaves it's scope.

    I have had problems with Win32::OLE variables being destroyed during global destruction. The ordering seems to mess things up enough to confuse Win32::OLE.

    /J