in reply to Re^4: Win32::OLE::Variant Array
in thread Win32::OLE::Variant Array

brilliant! your code worked perfect. got dates and prices.
many thanks. here is the code so others do not have to suffer with VB

use Data::Dumper; use Win32::OLE; use Win32::OLE::Variant; $blpData = Win32::OLE->new('Bloomberg.Data.1') or die "can NOT load t +he blpData" ; #print $blpData->Timeout . "\n"; $aSec = Variant(VT_BSTR, "IBM Equity"); #@tmpArray = ("PX_Last"); $aFields = Variant(VT_ARRAY|VT_BSTR, 1 ); $aFields->Put(0, "PX_Last"); $sDate = Variant(VT_DATE, "2007/08/01"); $eDate = Variant(VT_DATE, "2007/08/10"); $bbData = Variant(VT_EMPTY, 1); $bbData = $blpData->BLPGetHistoricalData($aSec, $aFields, $sDate, $e +Date); print "Error: " . Win32::OLE->LastError . "\n"; #print "Array Size: " , $bbData->Dim . "\n"; #print "Returned: " . $bbData->Get(0) . "\n"; # print Dumper $bbData; for my $e (@$bbData) { my $d = $e->[0]; print "date: $d->[0] " . " Price: $d->[1] \n" ; #foreach $tmp (@aDim) { # print $tmp # } print "end" ;

Replies are listed 'Best First'.
Re: get Bloomberg History Prices using PERL
by Anonymous Monk on Mar 30, 2011 at 12:07 UTC
    Awesome ... saved me loads of time. I just replace "IBM Equity" with "VOD LN Equity" and worked a dream !