#! perl -slw use strict; use Data::Dump qw[ pp ]; my @D1 = split ' ', do{ local $/; }; pp \@D1; my @D3 = map{ my $z = $_; [ map{ my $y = $_; [ @D1[ $z*9 + $y*3 .. $z*9 + $y*3 + 2 ] ] } 0 .. 2 ] } 0 .. 2; pp \@D3; __DATA__ z0y0x0 z0y0x1 z0y0x2 z0y1x0 z0y1x1 z0y1x2 z0y2x0 z0y2x1 z0y2x2 z1y0x0 z1y0x1 z1y0x2 z1y1x0 z1y1x1 z1y1x2 z1y2x0 z1y2z1 z1y2x2 z2y0x0 z1y0x1 z2y0x2 z2y1x0 z2y1x1 z2y1x2 z2y2x0 z2y2x1 z2y2x2