如何在使用Text::CSV::Slurp时将空格设置为分隔字符



文本文件如下:

Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 10.35.195.1 YES NVRAM up up
FastEthernet0/1 unassigned YES manual up down
SSLVPN-VIF0 10.35.195.1 YES unset up up
Loopback0 10.35.255.193 YES NVRAM up up
Loopback1 10.35.255.196 YES NVRAM up up
Loopback2 10.35.255.201 YES NVRAM up up
Loopback3 10.35.255.211 YES NVRAM up up

分隔符是空白字符,而不是",这是Slurp的默认实现。如何让它发生?

我尝试了sep_char,如下所示,但失败了。

my $data = Text::CSV::Slurp->load(file => 'table.txt',sep_char >= 0x20);

语法有问题。

应该是sep_char之后的=>,而不是>=。另外,一个简单的sep_char => ' '就足够了(而不是0x20)。

Text::CSV::Slurp使用Text::CSV模块解析文件的行。您使用的load方法将选项传递给Text:CSV的构造函数,您可能会有一个错别字:

my $data = Text::CSV::Slurp->load(file => 'table.txt', sep_char => ' ');

重要:Text::CSV_XS不是用来检测用于引号和分隔字段的字符的。解析使用预定义的设置完成。

最新更新