【发布时间】:2014-10-31 15:07:56
【问题描述】:
下面是我要操作的数据列表。我想拆分列并以不同的排列重新加入它们。
我想将数组的最后一个元素与第三个元素进行切换,但我遇到了问题。 由于数组的最后一个元素在末尾包含一个行字符,所以当我将它切换为第三个时,它会将所有内容都踢下一行。
代码
while (<>) {
my @flds = split /,/;
DO STUFF HERE;
ETC;
print join ",", @flds[ 0, 1, 3, 2 ]; # switches 3rd element with last
}
样本数据
1,josh,Hello,Company_name
1,josh,Hello,Company_name
1,josh,Hello,Company_name
1,josh,Hello,Company_name
1,josh,Hello,Company_name
1,josh,Hello,Company_name
我的结果 - 踢了一条线。
1,josh,Company_name
,Hello1,josh,Company_name
,Hello1,josh,Company_name
,Hello1,josh,Company_name
,Hello1,josh,Company_name
,Hello1,josh,Company_name,Hello
*期望的结果**
1,josh,Company_name,Hello
1,josh,Company_name,Hello
1,josh,Company_name,Hello
1,josh,Company_name,Hello
1,josh,Company_name,Hello
1,josh,Company_name,Hello
我知道它与 chomp 有关,但是当我 chomp 第一个或最后一个元素时,所有 \n 都会被删除。 当我在两者之间使用 chomp 时,什么也没有发生。有人可以帮忙吗?
【问题讨论】:
-
如果您的系统有
perldoc,我建议您在对特定功能有疑问时首先使用它。从您的 shell 中运行非常方便,并且文档非常好。像这样运行:perldoc -f <function>或者在这种情况下,perldoc -f chomp(我还添加了在线版本的链接)。请注意,chomp的文档包含一个与您的代码非常相似的代码示例。 -
非常酷!非常感谢您的提示,我发现自己很多时候都需要功能强大的示例! @ThisSuitIsBlackNot