use warnings; use strict; use Data::Dumper qw(Dumper); my @clk = ('ux_prim_clk', 'ux_side_clk', 'ux_xtal_frm_refclk'); my @clk_output = map [ split /_/, $_ ], @clk; print Dumper \@clk_output; my @clk_new = map{my $line =join ("_", @$_); $line}@clk_output; print Dumper \@clk_new;