拆分具有特殊字符的线条

时间:2014-10-03 15:25:01

标签: perl

尝试拆分一些如下数字:

$line = "6 13  2";

@a = split(/\s+/, $line)

但它没有用。原来空间不是简单的白色空间,vim编辑告诉我白色空间实际上有两个字节\ 20 \ 02。

我尝试通过以下方式对该行进行预处理,但它似乎无法正常工作。

$line =~ s/\x02//g;

知道如何拆分吗?

提前致谢!

1 个答案:

答案 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)