#! perl -slw use strict; my (@blocks, $datavertex); # Build the structure while(my $in = ) { if ( $in =~ /^88888/ ) { push @blocks, $datavertex; $datavertex = []; next; } my @vertex = ($in, scalar , scalar , 0); chomp @vertex; push @{$datavertex}, \@vertex; } push @blocks, $datavertex if @$datavertex; #! push the last block # Accessing it for my $block (0..$#blocks) { for my $dv ( 0 .. $#{$blocks[$block]} ) { for my $vertex ( 0 .. $#{$blocks[$block][$dv]} ) { print"[$block][$dv][$vertex] =>", $blocks[$block][$dv][$vertex]; } print ''; } } __DATA__ 1 786.582394 1480.624270 2 877.141985 1284.635536 3 779.147607 1239.355735 4 688.588015 1435.344469 5 786.582394 1480.624270 88888 6 664.833374 241.139500 7 661.222659 245.226628