【发布时间】:2011-05-24 15:40:51
【问题描述】:
我尝试使用 Perl 的 split 函数将几行文本转换为数组。问题是我在输出中得到了一些不寻常的额外字符,特别是以下字符串“\cM”(不带引号)。该字符串出现在原文有换行符的地方;但是,(我相信)这些换行符已在我尝试拆分的文本中删除。有人知道这种现象是怎么回事吗?我在下面发布了一个示例。谢谢。
这是我尝试拆分的原始纯文本。我正在从文件中加载它,以防万一:
10b2obo12b2o2b$6b3obob3o8bob3o2b$2bobo10bo3b2obo4bo2b$2o4b2o5bo3b4obo
3b2o2b$2bob2o2bo4b3obo5b4obob$8bo4bo13b3o$2bob2o2bo4b3obo5b4obob$2o4b
2o5bo3b4obo3b2o2b$2bobo10bo3b2obo4bo2b$6b3obob3o8bob3o2b$10b2obo12b2o!
这是我应该进行拆分的 Perl 代码:
while(<$FH>) {
chomp;
$string .= $_;
last if m/!$/;
}
@rows = split(qr/\$/, $string);
print; # a dummy line to provide a breakpoint for the debugger
这是调试器在到达“打印”行时输出的内容。我试图处理的问题出现在第 3、7 和 10 行:
DB<10> p $string
2o5bo3b4obo3b2o2b$2bobo10bo3b2obo4bo2b$6b3obob3o8bob3o2b$10b2obo12b2o!
DB<11> x @rows
0 '10b2obo12b2o2b'
1 '6b3obob3o8bob3o2b'
2 '2bobo10bo3b2obo4bo2b'
3 "2o4b2o5bo3b4obo\cM3b2o2b"
4 '2bob2o2bo4b3obo5b4obob'
5 '8bo4bo13b3o'
6 '2bob2o2bo4b3obo5b4obob'
7 "2o4b\cM2o5bo3b4obo3b2o2b"
8 '2bobo10bo3b2obo4bo2b'
9 '6b3obob3o8bob3o2b'
10 "10b2obo12b2o!\cM"
【问题讨论】:
标签: perl