... records => [ 'MDR', 'TCBMDR', 'INSS7MDR', 'TCBINSS7MDR' ], ... for ( my $i = 0; $i < scalar @{$categories{$k}->{tracciati}}; $i++ ) { my $TestReStr = join("|", map { "${_}" } @{$categories{$k}->{traces}[$i]->{records}} ); $categories{$k}->{traces}[$i]->{regex} = qr/$TestReStr/; }