将逗号替换为perl数组中的点

时间:2014-05-03 14:59:22

标签: arrays perl replace

有没有人知道如何用perl中的数组中的点替换逗号?

INPUT:

my @array = qw(6,2 5,2 4,2 3,2 2,2 1,2);

foreach (@array) {
print $_."\n";
}

EXPECTED OUTPUT:

6.2
5.2
4.2
3.2
2.2
1.2

3 个答案:

答案 0 :(得分:2)

可以使用s///

s/,/./g for @array;

但由于替换的LHS没有任何正则表达式,tr///更适合于任务:

tr/,/./ for @array;

答案 1 :(得分:2)

您可以尝试transliteration

foreach (@array) {
  tr/,/./;
  print $_, "\n";
}

答案 2 :(得分:1)

你需要

no warnings 'qw'

在没有Perl抱怨的情况下完全可以做到这一点。 (你希望启用警告?)

这将满足您的需求

use strict;
use warnings;
use 5.014;

no warnings 'qw';

my @array = map tr/,/./r, qw(6,2 5,2 4,2 3,2 2,2 1,2);

say for @array;

<强>输出

6.2
5.2
4.2
3.2
2.2
1.2

<强>更新

如果您已经定义@array并需要修改它,那么您可以只编写

tr/,/./ for @array