尝试执行以下代码时,我收到以下错误消息:
Use of tied on a handle without * is deprecated at C:/Perl/lib/XML/Parser/Expat.pm.
我听说可以通过安装XML :: Parser的v2.41来解决这个问题。如何安装特定版本的XML :: Parser?
#!usr/bin/perl
use strict;
use warnings;
use XML::Simple;
use Spreadsheet::ParseExcel;
my $FileName = 'sample.xls';
my $xml_file = 'hello.xml';
my $par=$ARGV[0];
my $xml = XMLin(
$xml_file,
KeepRoot => 1,
ForceArray => 1,
);
my $parser = Spreadsheet::ParseExcel->new();
my $workbook = $parser->parse($FileName);
die "Parser not Defined", ".\n" if ( !defined $workbook );
for my $worksheet ( $workbook->worksheets() ) {
# Find out the worksheet ranges
my ( $row_min, $row_max ) = $worksheet->row_range();
my ( $col_min, $col_max ) = $worksheet->col_range();
for my $row ( $row_min .. $row_max ) {
for my $col ( $col_min .. $col_max ) {
my $cell = $worksheet->get_cell( $row, $col );
next unless $cell;
$xml->{$par} = $cell->value();
}
}
}
答案 0 :(得分:2)
您无需安装特定版本,只需安装最新版本,以下内容即可:
cpan XML::Parser
更改日志确实表明此错误已在2.41中修复(恰好是最新版本)。
答案 1 :(得分:0)
我找到了答案..没有什么特别的安装.. ActivePerl版本5.14.2有所有支持和更新的包..这将工作。即使是5.14.1版本也没有所有更新的软件包。所以请仅使用5.14.2。