Perl 配列の仕組みと使い方のサンプル

Perlの配列の仕組みと使い方のサンプルです。

確認環境
・Perl 5.26.3

目次

配列とは

  • 1つの変数で複数の値を保持できます。
  • 各項目を要素(element)といいます。
  • 要素の順序をインデックス(添字)で管理します。上記図では[0]、[1]、[2]、[3]がインデックスです。
  • インデックスの先頭は0から始まります。
  • 以下はPerl公式の日本語翻訳サイトの配列のリンクです。
    https://perldoc.jp/docs/perl/5.14.1/perllol.pod

配列を作成する

配列を作成するサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

my @color = ('赤','黄','青');

print ($color[0]); # 赤
print ($color[1]); # 黄
print ($color[2]); # 青

5行目は、配列を作成しています。

配列の末尾に値を追加する

配列の末尾に値を追加するサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

my @color = ("赤","黄","青");

$color[3] = "白";

print ($color[0]); # 赤
print ($color[1]); # 黄
print ($color[2]); # 青
print ($color[3]); # 白

push @color,'黒';

print ($color[4]); # 黒

7行目は、インデックスを指定して値を配列の末尾に追加しています。
14行目は、push関数で値を配列の末尾に追加しています。

配列の先頭に値を追加する

配列の先頭に値を追加するサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

my @color = ("赤","黄","青");

unshift @color,"白";

print ($color[0]); # 白
print ($color[1]); # 赤
print ($color[2]); # 黄
print ($color[3]); # 青

7行目は、unshift関数で配列の先頭に値を追加しています。

配列の値を更新する

配列の値を更新するサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

my @color = ("赤","黄","青");

$color[1] = "オレンジ";

print ($color[0]); # 赤
print ($color[1]); # オレンジ
print ($color[2]); # 青

7行目は、5行目の配列のインデックスの1(黄)を指定しています。更新になり文字が置き換わります。

配列の値をfor文で取得する

配列の値をfor文で取得するサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

my @color = ("赤","黄","青");

for(my $i=0; $i<=$#color;$i++){
	print $color[$i]; # 赤黄青
}

foreach my $c1 (@color){
	print $c1; # 赤黄青
}

7行目は、for文です。条件式の$#colorは2を返します。配列の最後の要素のインデックス値です。
11行目は、foreach文です。配列の値分ループします。

二次元配列を作成する

二次元配列を作成するサンプルです。

#! /usr/bin/perl
use strict;
use warnings;

my @a = (
	["赤","黄","青"],
	["緑","白","黒"]
);

print ($a[0][0]); # 赤
print ($a[0][1]); # 黄
print ($a[0][2]); # 青
print ($a[1][0]); # 緑
print ($a[1][1]); # 白
print ($a[1][2]); # 黒

#入れ子の構造
my @b = (
	"色の種類",
	["赤","黄","青"],
	["緑","白","黒"]
);

print ($b[0]); # 色の種類
print ($b[1][0]); # 赤
print ($b[1][1]); # 黄
print ($b[1][2]); # 青

5~8行目は、二次元の配列を作成しています。
10~15行目は、インデックス番号を2つ使用して配列の値を参照しています。
18~22行目は、入れ子の構造の配列を作成しています。

関連の記事

Perl if文のサンプル
Perl while文とdo…while文のサンプル
Perl for文とlastとnextのサンプル

△上に戻る