Perl初心者です。Perlの2次元配列について質問です。


@A(@a1, @a2, @a3, @a4)
@B(@b1, @b2, @b3, @b4)

という各要素が配列になっている配列AとBがあります。
で、これら2つの配列をくっつけて一つの配列Cにしたい ↓

@C(@c1, @c2, @c3, @c4)
ただし、各要素はそれぞれの要素をpushして1つの配列に結合したもの
@c1=(@a1,@b1)
@c2=(@a2,@b2)

のですが、foreachで@Aを回すとそれぞれの要素が配列なので、どうやっていいかわかりません。
どうコーディングすればよいでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2007/07/30 19:04:21
  • 終了:2007/08/06 19:05:27

回答(1件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/07/30 20:18:00

ポイント60pt

基本的には Perl に多次元配列はないのでリファレンスを使用することになります。

リファレンス [Perl講座 -Smart]


@a1 = ( 'a','b' );
@a2 = ( 'c','d' );
@A = ( \@a1, \@a2 );

@b1 = ( 'A','B' );
@b2 = ( 'C','D' );
@B = ( \@b1,\@b2 );

@C = ();
for (my $i=0;$i<@A && $i<@B; $i++) {
  my $a = $A[$i];
  my $b = $B[$i];
  my @c = ( @{$a} , @{$b} );
  push @C, \@c;
}

@A と @B のサイズが違うときは考慮していません。

id:cazzac

ありがとうございます。リンクが参考になります。

@Aと@Bのサイズは同じです。

2007/07/30 21:47:06

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません