use strict; use Data::Dumper; my @data = (); my $string = qq~KWER02;262;P1-3-1-1-5-2.0;80077 KWER02;15;P1-3-1-1-5-2.0;80078 KWER02;262;P1-3-1-1-5-1.0;80078~; for (split(/\r?\n/,$string)) {  push(@data,[split(/;/)]); } print Dumper(\@data);