#!/user/bin/perl use strict; use warnings; use Data::Dumper; use IO::All -utf8; sub writeMatrix2File{ my ( $filename , $matrix ) = @_; my $iol = io($filename)->lock; while (defined(my $line = shift @$matrix)) { # io($filename)->appendln(join ' ', map "$_", @$line); $iol->println(join ' ', map "$_", @$line) } $iol->unlock; } sub readMatrixFromFile{ my $matrix; my ( $filename ) = @_; my @lines = io($filename)->chomp->slurp; while (defined (my $line = shift @lines)){ my (@row) = split (/\s+/, $line); push (@{$matrix}, \@row); } return $matrix; } my $matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; my $filename = 'matrix.txt'; writeMatrix2File($filename, $matrix); print Dumper readMatrixFromFile($filename); __END__ ~/PerlMonks$ perl matrix.pl $VAR1 = [ [ '1', '2', '3' ], [ '4', '5', '6' ], [ '7', '8', '9' ]