本文へスキップ
BecomeCoder

Perlコース · 第4章 配列 · レッスン12

配列の基本 ― @ で値を並べる

ブラウザで完結

導入

配列@名前 で作ります。中の1つ1つの要素を取り出すときは $名前[番号] と、シジルが $ に変わるのがPerlの特徴です。

説明

my @配列 = (値, 値, ...); で作ります。番号(インデックス)は 0 から始まり、$配列[番号] で読み書きします。-1 は末尾を指します。

use strict;
use warnings;

my @colors = ("red", "green", "blue");

print $colors[0], "\n";     # red(先頭)
print $colors[-1], "\n";    # blue(末尾)

$colors[1] = "yellow";      # 書き換え
print "@colors\n";          # red yellow blue

ダブルクォートの中に @colors と書くと、要素が半角スペースで区切られて展開されます。末尾に要素を足すのは push、末尾から取り出すのは pop です。

use strict;
use warnings;

my @stack = (1, 2, 3);
push @stack, 4;            # 末尾に追加
print "@stack\n";          # 1 2 3 4

my $last = pop @stack;     # 末尾を取り出す
print "取り出した: $last\n";   # 4
print "@stack\n";          # 1 2 3

やってみよう

@colors の中身や要素数を変えて、$colors[番号]@colors の表示がどう変わるか確かめましょう。push / pop も試してください。

演習

配列 @nums(10, 20, 30) を入れ、push40 を追加してから、配列全体を "@nums" の形で表示してください(結果は 10 20 30 40)。

ヒント1を見る

my @nums = (10, 20, 30); push @nums, 40; のあと print "@nums\n";

実際に動かしてみよう

下のエディタにPerlを書いて「実行」を押すと、学習用シミュレータが print / say の出力を表示します(本物のperlではなく、教材の範囲を再現した軽量なエンジンです)。スカラ/配列/ハッシュ・制御構文・サブルーチン・正規表現(=~ / s///)なども動きます。本文の例を書き換えて動かしてみましょう(ファイル入出力・リファレンス・CPANモジュールなど一部の機能は対象外です)。

Perl — ブラウザ内で実行(学習用シミュレータ)

Perlの教材サブセットを動かす学習用シミュレータを読み込みます(本物のperlではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。