【问题标题】:undefined subroutine @main::csv error in Text:CSV_XS moduleText:CSV_XS 模块中未定义的子例程 @main::csv 错误
【发布时间】:2017-03-28 16:05:30
【问题描述】:

在我的一个 linux vm 框中,以下 perl 代码在第 4 行失败

use Text::CSV_XS qw( csv );
my $csv = Text::CSV_XS->new( { binary => 1, eol => "\n" } );
open( $fh, '<:crlf', 'test.csv' ) or die $!;
@lineArray = csv(   in => $fh, headers => "auto"); 
print 'done';

错误表明 main 中没有 csv 方法。错误输出为 @main::csv 未定义子例程。 此代码适用于其他安装,但不仅仅是在一台机器上。

Perl 版本是 5.10.1

【问题讨论】:

  • 盒子上安装的是什么版本的模块?似乎是没有csv 功能的旧版本。另请注意,使用csv函数时不需要构造函数。
  • 我刚刚使用从 docs 复制的示例在 v5.10 和 v5.16 上进行了测试,它的行为方式与您所说的相同——没有 csv 函数。
  • 是的,我意识到 Text::CSV_XS 在 2001 年 10 月之后于 2016 年 3 月发布。那是 15 年后。所以我想这就是原因,我的一个盒子里没有 csv 方法,因为模块很旧。

标签: perl csv text


【解决方案1】:

Text::CSV_XSwas introduced in version 1.04 中的 csv 函数。检查$Text::CSV_XS::VERSION 的值,如果它比 v1.04 旧,请升级。

【讨论】:

    猜你喜欢
    • 2011-10-08
    • 2016-08-29
    • 2017-02-25
    • 2013-09-19
    • 2019-06-23
    • 2014-03-13
    • 2011-10-30
    • 2013-06-25
    • 2017-02-23
    相关资源
    最近更新 更多