in reply to Re: Re: Re: Re: Where's the result??? (problem with Win32::OLE)
in thread Where's the result??? (problem with Win32::OLE)

You are probably using an older version of Win32::OLE if you have to provide the second argument to Variant() in this case.

The Dim() method returns a list of array bounds. Each element of the list is an array ref to a 2 element array containing the lower and the upper bound of that dimension. Although SAFEARRAYs typically have a lower bound of 0, this is not always true.

So by iterating from $dim[0][0] .. $dim[0][1] we go from the lower to the upper bound of the first dimension of the underlying SAFEARRAY. Ideally, you should check that the returned VARIANT is actually an array, and that the @dim array only contains a single element.