読者です 読者をやめる 読者になる 読者になる

Perlの基礎(配列、配列関数)

配列


  • @から始まり変数と同様に英字でスタート。アンダースコアも使える。
  • 配列の中の各要素は $配列名[添え字]で表す事ができる。
@fruit = ("apple","orange","banana");
print "$fruit[2]\n";

> banana
  • 配列の個数を取り出す。
@fruit = ("apple","orange","banana");
$num = @fruit;   #配列の個数
print "$num\n";

> 3
  • 配列に要素を追加する。
@fruit = ("apple","orange","banana");
@fruit = (@fruit,"grape");
print "@fruit\n";

> apple orange banana grape

配列関数


  • push 配列の末尾へ要素を追加
  • pop 配列の末尾の要素を削除
  • anshift 配列の先頭へ要素を追加
  • shift 配列の先頭の要素を削除
  • reverse 配列の順序を逆順にする
  • sort 配列の順序をソートする

ソートの方法がいろいろあったので書いておく。

  • 文字列を逆ソート
@cher = ("C","A","D","B");
@cher = sort{ $b cmp $a } @cher;
print "@cher\n";

> D C B A
  • 数値を逆ソート
@cher =( 3,1,4,2);
@cher = sort{ $b <=> $a } @cher;
print "@cher\n";

> 4 3 2 1

どうしてこのようにするのかは全く理解してません…

多次元配列


@list = (
    ['a','b','c'];
    ['d','e','f'];
    ['g','h','i'];
);

上記の二次元配列を例として1番目の配列だけ出力するには

@list = (
    ['a','b','c'],
    ['d','e','f'],
    ['g','h','i'],
);
print "@{$list[0]}\n";

> a b c

要素ごとに展開表示させるにはforeach文で繰り返し処理をする

@list = (
    ['a','b','c'],
    ['d','e','f'],
    ['g','h','i'],
);
foreach $tmp(@list) {
   print "@{$tmp}\n";
}

> a b c
> d e f
> g h i

参考サイト


Perl基礎入門|KentWeb