如何解决XML :: Parser :: Expat错误:“在不使用*的句柄上使用绑定”?

时间:2012-07-12 20:45:24

标签: xml perl

尝试执行以下代码时,我收到以下错误消息:

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();

            }
        }
    }

2 个答案:

答案 0 :(得分:2)

您无需安装特定版本,只需安装最新版本,以下内容即可:

cpan XML::Parser

更改日志确实表明此错误已在2.41中修复(恰好是最新版本)。

答案 1 :(得分:0)

我找到了答案..没有什么特别的安装.. ActivePerl版本5.14.2有所有支持和更新的包..这将工作。即使是5.14.1版本也没有所有更新的软件包。所以请仅使用5.14.2。