in reply to concatenating the array elements

Are you sure you want an array for the result? Your description and example look more like a string: $concat = join ',', map {"!$_"} @array1;

If you really mean the array,

@array2 = map {"!$_,"} @array1; chop $array2[-1];
That's the first time I've found chop useful ;-)

After Compline,
Zaxo