私はPerlの専門家ではないので、numSheetsを取得する最初の方法がうまくいくのに、次の方法がうまくいかないのはなぜだろうと思っています。
use Spreadsheet::Read;
my $spreadsheet = ReadData("blah.xls");
my $n1 = $spreadsheet->[1]{sheets}; # okay
my %sh = %spreadsheet->[1]; # bad
my $n2 = $sh{label};
最後から2番目の行でエラーが発生します
Global symbol "%spreadsheet" requires explicit package name at newexcel_display.pl line xxx
私は正しい印章を持っているとかなり確信しています。実験すると、さまざまなエラーしか発生しません。スプレッドシートは直接配列ではなく配列への参照であることを私は知っています。メタデータや個々のシートのハッシュについてはわかりませんが、さまざまな仮定を試してみると、どこにもつながりません(少なくとも私の控えめなperlスキルでは)。
Spreadsheet :: Readの仕組みに関する私のリファレンスは、http: //search.cpan.org/perldoc?Spreadsheet :: Readです。Spreadsheet の適切な使用方法を示す良い例がオンラインのどこかにある場合は、それらがどこにあるか知りたいです。