in reply to Solved: map on array reference

Because you are getting the return value of the substitution, instead of the changed text. Try adding the -r flag, introduced in Perl 5.14:
my @values = map { s/dc=domain,dc=tld/dc=sub,dc=otherdomain,dc=tld/ir +} @$array_ref;
perl -E ' @ary =( "abc", "cbc", "dbd" ); say for map { s/b/FOO/r } @ary; ' aFOOc cFOOc dFOOd

The way forward always starts with a minimal test.