#! perl -slw use strict; my @arrays; my $buf =''; while($buf .= ) { push(@arrays, [ split(' ',$1) ]) , $buf = $2 while $buf =~ /\[([^]]+)\](.*$)/g; } print do{ local $"=','; "[@$_]" } for @arrays; __DATA__ [1 1 1 1 1 1] [4 4 4 4 4 4] [ 123 123 123 123 123 123 123 123 123 ] "P" [ -1 1 1 1 1 -1 1 1 1 ] #### c:\test>234118 [1,1,1,1,1,1] [4,4,4,4,4,4] [123,123,123,123,123,123,123,123,123] [-1,1,1,1,1,-1,1,1,1]