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

时间:2015-07-11 07:35:21

标签: perl auto-increment

这个Perl脚本打印出像这样的输出

value value value value
my $tree = HTML::TreeBuilder::XPath->new_from_content( $content );

my @myvalue = $tree->findvalues('//html/body/center[1]/table/tbody/tr[4]/td[1]/following-sibling::td'); 

@myvalue = map {/^(\d+)/; $1} @myvalue;
print join(' ', @myvalue);

相反,我需要它像这样打印

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

输出

foostring1:value foostring2:value foostring3:value foostring4:value

答案 1 :(得分:1)

您还应该检查正则表达式是否成功才能在$1中获得所需的内容,

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