use warnings; use strict; my @array1 = ('ux_prim_clk', 'ux_side_clk', 'ux_xtal_frm_refclk'); my @array2 = ('ccu_ux_xtal_frm_refclk_ack', 'ibbs_ux_prim_clkack', 'sbr_ux_side_clkack'); my @array1_split_2D = map { [ split /_/, $_ ] } @array1; my @array2_split_2D = map { [ split /_/, $_ ] } @array2; for my $i ( 0 .. $#array1_split_2D ) { for my $j ( 0 .. $#array2_split_2D ) { my $array2_column_size = @{$array2_split_2D[$j]}; while ( @{$array1_split_2D[$i]} != $array2_column_size ) { splice @{$array2_split_2D[$j]}, 0, 1; } } }