無名配列、配列のリファレンスとデリファレンス、ループ処理の練習〜マトリックスを転置しよう
●お題
まず、自分で以下のような配列を作る。 1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,20 21,22,23,24,25 作った配列を、以下のように転置する。 1,6,11,16,21 2,7,12,17,22 3,8,13,18,23 4,9,14,19,24 5,10,15,20,25
●回答
#! /usr/bin/perl use strict; use warnings; use Data::Dumper; my $array = [ [1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15], [16,17,18,19,20], [21,22,23,24,25], [26,27,28,29,30], ]; foreach(my $j=0;$j<4;$j++){ foreach(my $i=1+$j;$i<5;$i++){ #my $a = $array->[$i]->[$j]; #$array->[$i]->[$j] = $array->[$j]->[$i]; #$array->[$j]->[$i] = $a; #perlだけの技。リストにして置き換える。 ($array->[$i]->[$j],$array->[$j]->[$i]) = ($array->[$j]->[$i],$array->[$i]->[$j]); } } print Dumper $array;