0

我有一个数组,每个索引都有几个值,格式为“xxxxx yyyyyy”。我想遍历数组并用选项卡替换单个位置。我知道我可以使用 sed 使用替换命令解析输出文件s/ /\t/。在使用 for 循环遍历数组并重写每个索引时,我可以在 perl 中做类似的事情吗?

#!/usr/bin/perl -w

foreach my $arg (@ARGV) {
#print $arg . "\n";
push (@md5, `md5sum $arg`);
}

foreach $entry (@md5) {
$entry = s/ /\t/;
print $entry . "\n";
}

输出

Use of uninitialized value $_ in substitution (s///) at ./mymd5.pl line 9.

Use of uninitialized value $_ in substitution (s///) at ./mymd5.pl line 9.

Use of uninitialized value $_ in substitution (s///) at ./mymd5.pl line 9.

Use of uninitialized value $_ in substitution (s///) at ./mymd5.pl line 9.

Use of uninitialized value $_ in substitution (s///) at ./mymd5.pl line 9.

Use of uninitialized value $_ in substitution (s///) at ./mymd5.pl line 9.

Use of uninitialized value $_ in substitution (s///) at ./mymd5.pl line 9.

Use of uninitialized value $_ in substitution (s///) at ./mymd5.pl line 9.
4

1 回答 1

0

您的替换语句g最后缺少使其全局(所有出现)和替换到位的波浪号......

$entry =~ s/ /\t/g;

反问题就在那里......

于 2013-10-19T04:20:46.840 回答