in reply to Howto insert numbers into between strings alternately
use warnings; use strict; my @array = ( 'foo bar quux bam', 'foi bir quix bim', 'foe ber quex bem', 'foa bor quax bom', ); my $inst1 = '4 A -4 C -4 B 2 D'; my @result1; my @inserts; $inst1 =~ /[\d+-]+(?: \w ([\d+-]+)(?{push @inserts, $1}))*/g; for my $line (@array) { my $index = 0; $line =~ s/\b /' '.$inserts[$index++].' '/eg; push @result1, $line; } print join "\n", @result1;
Prints:
foo -4 bar -4 quux 2 bam foi -4 bir -4 quix 2 bim foe -4 ber -4 quex 2 bem foa -4 bor -4 quax 2 bom
Update: Oh, and using the alternate data set prints:
foo -2 bam foi -2 bim foe -2 bem foa -2 bom
|
|---|