Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Gosh, thanks for noticing that this ancient thread was burbling again. :-)

Update: I reposted this note in its own thread and received a solution at Re: 'emptyenum' error w/ use Win32::OLE::Const 'Microsoft Word'

To recap: I'm getting a series of 15 messages like:

Constant subroutine emptyenum redefined at C:/Perl/site/lib/Win32/OLE/Const.pm line -1.

The warnings do seem to be harmless because my program is creating the Word documents that I want via templates. My problems are:
1. I'd like to be positive these messages are harmless and won't cause me problems if I leave them alone.
2. If harmless, I'd be okay with turning off warnings before/after Const invocation but the documentation about them seems to say that these errors are so important that they can't be muted. Of course I could temporarily send errors to /dev/null but that seems like asking for trouble later on.
3. Is it possible to fix the problems that are causing the warnings?

While you did say that emptyenum was being run more than once, that didn't do much for me because I couldn't see anywhere where it WAS being run. I couldn't find it in Const.pm nor in my own code. However, I did pull out my handy-dandy OLE browser that comes with ActiveState's perl and noticed that

# Type Library Browser for wdCharacterCaseHID shows emptyenum

Now there's zillions of little pieces of stuff that is investigatable (?) about MS Word with that tool and it was mostly a shot in the dark that elicited that nugget. But not a total shot, as relevant lines from my code include:

use Win32::Shortcut; use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Word'; my $x = Win32::OLE->GetActiveObject('Word.Application'); # snip $x->Selection->Delete( { Unit=>wdCharacter, Count=>1 } ); # The above is my kiddy-scripted version of some VisualBasic that I # came upon: Selection.Delete Unit:=wdCharacter, Count:=1

which is what made me check out the properties of wdCharacterCaseHID. Now, that nugget may be totally irrelevant whereupon I'm exhibiting my cluelessness about what to do.

Some cluck commands that I embedded into Const.pm also give some results that puzzle me. When the code above runs (the code is in a sub called 'word_subs.pl' in a package called 'ws'), cluck tells me:

ws::BEGIN() called at C:/Perl/site/lib/Win32/OLE/Const.pm line 120

Line 120 is the line in 'word_subs.pl' above that invokes Const.pm.

However, when my main program gets around to invoking a different sub ('out_subs.pl' from a different package 'email_out'), and that sub has lines including:

use strict; use warnings; use Win32::OLE; use Win32::OLE::Const 'Microsoft Outlook';

then cluck tells me:

email_out::BEGIN() called at out_subs.pl line 1027

and in this case cluck's output seems to properly notify that the Const.pm module was being invoked from line 1027 of out_subs.pl (the line with the <Microsoft Outlook> string). The fact of no complaints from the Outlook stuff would seem to say that emptyenum is being used strangely within Word....


In reply to Re^6: RE (tilly) 1: Win32::OLE by ff
in thread Win32::OLE by Rudif

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-03-29 11:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found