从Perl映射打印自动递增字符串

从Perl映射打印自动递增字符串,perl,auto-increment,Perl,Auto Increment,这个Perl脚本输出如下 value value value value foostring1:value foostring2:value foostring3:value foostringn:value 相反,我需要它像这样打印 value value value value foostring1:value foostring2:value foostring3:value foostringn:value 如何使用整数自动递增字符串作为值的前缀?您还应该检查正则表达式是否成功,

这个Perl脚本输出如下

value value value value
foostring1:value foostring2:value foostring3:value foostringn:value
相反,我需要它像这样打印

value value value value
foostring1:value foostring2:value foostring3:value foostringn:value

如何使用整数自动递增字符串作为值的前缀?

您还应该检查正则表达式是否成功,以便在
$1
中包含所需的内容

my $i = 0;
@myvalue = map { /^(\d+)/ ? sprintf("foostring%s:%s", ++$i, $1) : () } @myvalue;

自动递增运算符将为您执行此操作。这是所有必要的

my @values = qw/ value value value value /;

my $key = 1;
say join ' ', map { 'foostring' . $key++ . ":$_" } @values;
输出