尝试拆分一些如下数字:
$line = "6 13 2";
@a = split(/\s+/, $line)
但它没有用。原来空间不是简单的白色空间,vim编辑告诉我白色空间实际上有两个字节\ 20 \ 02。
我尝试通过以下方式对该行进行预处理,但它似乎无法正常工作。
$line =~ s/\x02//g;
知道如何拆分吗?
提前致谢!
答案 0 :(得分:3)
使用Data::Dump
检查您的数据:
use Data::Dump;
$line = "6 13 2";
dd $line;
输出:
pack("H*","36e280823133e28082e2808232")
或许更有帮助:
use Data::Dump;
$line = "6 13 2";
dd split //, $line;
输出:
(
6,
"\xE2",
"\x80",
"\x82",
1,
3,
"\xE2",
"\x80",
"\x82",
"\xE2",
"\x80",
"\x82",
2,
)
看起来你有一些编码问题要处理。
更改为utf8
:
use strict;
use warnings;
use utf8;
use Data::Dump;
my $line = "6 13 2";
dd split /\s+/, $line;
输出:
(6, 13, 2)