Win32 :: OLEモジュールを使用して、Excelファイルを開き、行数を取得しています。問題は、Excelファイルパスをハードコーディングすると正常に機能するが、パスを動的に渡すと、「祝福されていない参照でメソッドワークブックを呼び出すことができない」というエラーがスローされることです。以下のサンプルコードを見つけてください。
use OLE;
use Win32::OLE::Const 'Microsoft Excel';
my $xapp= Win32::OLE->GetActiveObject('Excel.Application')
or do { Win32::OLE->new('Excel.Application', 'Quit')};
$xapp->{'Visible'} = 0;
my $file='excel.xlsx';
my $fileName="c:/users/mujeeb/desktop/".$file;
print $fileName;
my $wkb = $xapp->Workbooks->Open($fileName); //here i am getting error coz i am passing dynamic fileName;
my $wks = $wkb->Worksheets('Sheet1');
my $Tot_Rows=$wks->UsedRange->Rows->{'Count'};
print $Tot_Rows."\n";
$xapp->close;