use strict; use warnings; use PDL; use PDL::Char; my $str = "0 X X X X X X X X 1 X X X X X X X X 2 X X X X X X X X 3 X X X X X X X X 4 X X X X X X X X 5 X X X X X X X X 6 X X X X X X X X 7"; print pp_matrix( str2matrix($str, 8, 8) ); sub str2matrix { # my ($str, $x, $y) = @_; PDL::Char->new( shift ) ->mslice([0,-1,2]) ->reshape(1, shift, shift); } sub pp_matrix { # my ($matrix) = @_; shift ->reshape(-1) ->append( PDL::Char->new("\n") ) ->flat ->atstr(0); }