use Data::Dumper; use Win32::OLE; use Win32::OLE::Variant; my $blpData = Win32::OLE->new('Bloomberg.Data.1') or die + "can NOT load the blpData" ; #print $blpData->Timeout . "\n"; my $aSec = Variant(VT_BSTR, "COPUSD CURNCY"); my $aFields = Variant(VT_ARRAY|VT_BSTR, 1 ); $aFields->Put(0, "LAST_PRICE"); my $sDate = Variant(VT_DATE, "2009/09/30 15:00:00"); my $eDate = Variant(VT_DATE, "2009/09/30 15:00:01"); ## These are the parameters I'm trying to pass. my $option = Variant(VT_ARRAY|VT_BSTR, 9 ); $option->Put(0, "BarTp=T"); $option->Put(1, "BarSz=1"); $option->Put(2, "Dir=V"); $option->Put(3, "Dts=S"); $option->Put(4, "Sort=A"); $option->Put(5, "Quote=C"); $option->Put(6, "Fill=P"); $option->Put(7, "UseDPDF=Y"); $option->Put(8, "cols=2;rows=1"); my $bbData = Variant(VT_EMPTY, 1); $bbData = $blpData->BLPGetHistoricalData($aSec, $aFields, + $sDate, $eDate, $option); 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" ; } print "end" ;