Я хотел бы найти все экземпляры и заменить все по отдельности, даже если они идентичны.
#!/usr/bin/perl
use strict;
use warnings;
my %dataThing;
my $x=0;
my $data = "1 - 2 - 2 - 4 - 7 - 343 - 3 - 1";
if( my @dataArray = ( $data =~ m/([0-9]+)/gis )){
foreach( @dataArray ) {
my $replace = "[thing-" . $x . "]";
# somehow replace $_ with above
...
# add to an array to store later
$dataThing{$replace} = $_;
$x++;
}
}
так что вывод будет;
[thing-1] - [thing-2] - [thing-3] - [thing-4] - [thing-5] - [thing-6] - [thing-7] - [thing-8]
не
[thing-1] - [thing-2] - [thing-2] - [thing-3] - [thing-4] - [thing-5] - [thing-6] - [thing-1]
Это было бы возможно в PHP, циклически перебирая массив и используя str_replace с пределом функции, установленным в 1.