in reply to Re: parsing Win32::OLE::Variant
in thread parsing Win32::OLE::Variant

Try the following:
for my $item ( in $bbData) { print 'Dumper $item: ', Dumper $item . "\n"; # }
and got
-1 subMode: 1 Error: 0 Dumper $bbData: $VAR1 = bless( do{\(my $o = 27085052)}, 'Win32::OLE::V +ariant' ); Can't locate object method "in" via package "Win32::OLE::Variant" at t +stblpSubscribe.pl line 43.
In VBA a two dimension arry is returned
any suggestions

kd

Replies are listed 'Best First'.
Re^3: parsing Win32::OLE::Variant
by Corion (Patriarch) on Sep 26, 2008 at 18:03 UTC

    You need to import the in function from Win32::OLE. Read the documentation on how to import and use in. Alternatively, you likely can call the ->Item method on your object, because most collections use that name to access their entries. Again, I can also only refer you to the documentation that the vendor provides.

      Hello: Many thanks for your quick reply. The documentation is lacking, it is written for VB/VBA and it just sort-a-kinda works.

      In VB the return is Variant/Variant(0 to 0, 0 to 2). And it behaves like a two dimension array.

      . I will import the IN function as you suggested.

      thanks for your assistance.

      KD
      I gave the documentation a good read through and do not have clue how to import the IN function. I am certain that the data is in $bbData but I clueless as how to get at it.

      how do you know that $bbData is a collection?

      KD

        Because collections are the usual datatype to pass around list. I think they use the ICollection interface and possibly can also be accessed through the string dispatch methods.

        I still wonder how you failed to notice the Overloading section in Win32::OLE, but maybe we have different notions of what "a good read through" means.

        Maybe if you can show us some VB code, we can give you more ideas of what to try to replicate the same behaviour in Perl. My approach is to open up Excel, press Alt-F11 to launch the VB environment, then add the OLE object I want from the menu under Tools\References, and then press F2 to browse the object model of said OLE object. This is usually available even when the documentation is bad. But maybe you want to use a different approach.