in reply to how to use join my array ?

I'm not sure that I fully understand the question, but ... is this something like what you're after-
foreach my $z ( %abc) { push @ab, "-$z"; }
or possibly @ab = map { "-$_" } @ab; ??

foreach my $z (keys %abc) { push @ab, "-$z"; }
or possibly @ab = map { "-$_" } keys %abc; ??

Update 1:

In fact I misunderstood the question so much as to provide complete and utter drivel as a reply - doh!!!

Update 2:

Attempted to provide a more meaningful and possibly half-sensible, reply.

A user level that continues to overstate my experience :-))