Yamamoto's Laboratory
 
データ構造
 
 
 
 
コンピューター Perl データ構造

Perlデータ構造

Perl の様々なデータ構造について説明します.

目次


はじめに

perlは型指定が不要で,変数や配列などが簡単に使えます.変数名はには,アルファベットと数字,アンダースコア(_)が使えます.先頭はスカラー変数では$で配列では@,%はハッシュです.これらのデータ構造を識別する記号の次にアルファベットあるいはアンダースコアになります.$や@の次に数字はダメです.$や@が付く以外は,C言語と同じです.もちろん,大文字と小文字は区別されます.

$_は,特別な変数です.いろいろなところで,デフォルトの変数となっています.そのため,普通の変数として$_を使うことは望ましくありません.同様に@_も同様です.

スカラー

変数名の先頭に$をつけることで,スカラー変数が生成できます.

$hoge=2;
$fuga=314e-2;
$foo="Hello World!";
$a=$hoge;
$b=$fuga;
$c=foo;

配列

配列名の先頭に@をつけます.配列の要素にアクセスするときには$と[]を使います.文字と数値をひとつの配列の中に混在させることもできます.

@hoge=(31, 24, 1, 5, 923);    # 配列の初期化
@fuga=@hoge;                  # 配列間の代入
$n=@hoge;                     # $nは@hoge要素数が代入される $nは5に
$a=$hoge[1];                  # $aは24になる
$hoge[0]=333;                 # @hoge=(333, 24, 1, 5, 923)に
    
@test=("suzuki",49,"sato",89,"tanaka",73,"yamamoto",65);

ハッシュ(連想配列)

配列名の先頭に%をつけます.通常の配列では,要素へのアクセスは整数のインデックスを使います.それに対して連想配列(associative array)では,キーと呼ばれる文字列を使って要素へアクセスします.

%animal=(Tom => 'cat', Bucci => 'cat');    # キーはTOMとBucci,値はcatとcat
$animal{'Jerry'} = 'mouse';                # 連想配列に追加
delete $animal{'Bucci'};                   # データの削除
    
print "$animal{'Tom'}\n";                  # catと表示;
@animal_key =  keys(%animal);              # キーを取り出して,配列に格納
@animal_value = values(%animal);           # 値を取り出して,配列に格納

while(($name, $species)=each(%animal)){    # 全てのキーと値を表示
  print "Key:$name    Value:$species\n";
}

構造体

Perlで構造体を使う場合は,モジュール「Class::Struct」を使います.

ページ作成情報

参考資料

  1. my と local の違いは,Perlで作るCGI講座 - my と local どう違う?が詳しい.
  2. MASさんの「Perlで書く」は,大変よく書かれています.特に,「Perl表技集」は,プログラミングの参考になります.

更新履歴

2011年11月30日 ページの新規作成


no counter