use Data::Dumper; use strict; use warnings; my $arr = ['A -4 C','C -4 B','B -4 A','A -2 C','C -3 B']; my @a = map {[split " ",$_]} @$arr; print Dumper(\@a); #### $VAR1 = [ [ 'A', '-4', 'C' ], [ 'C', '-4', 'B' ], [ 'B', '-4', 'A' ], [ 'A', '-2', 'C' ], [ 'C', '-3', 'B' ] ];