[もくじへトップページへ前ページへ次ページへ]

に更新

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 4.配列

 (1)リスト

 Perlでは、通常の配列変数は変数名の前に@をつけます。

 たとえば、

      @tanaka = ("ABC","123","1.25","A13","DEF");


 と書くと、配列変数@tanakaに順に代入されます。このように、1行で書く書

 式をリストといいます。

 配列は順番を0から数えることになっており、

      @tanakaの中のDEFを取り出すには、$tanaka[4]とします。


 あれ?頭文字が$になっていますね。

 そうなんです。[添え字]で指定するときは、@ではなく$を使います。

 ですから、

      @tanaka = ("ABC","123","1.25","A13","DEF");


 
は添え字を使うと、次のようになります。

      $tanaka[0] = "ABC";
      $tanaka[1] = "123";
      $tanaka[2] = "1.25";
      $tanaka[3] = "A13";
      $tanaka[4] = "DEF";


 添え字は$tanaka[$n]のように、変数や式でもかまいません。



 (2)スライス  

 @tanakaの0番目と2、3、4番目の要素を表示するには、

      print "@tanaka[0,2,3,4]";


 と記述しますが、次のように記述することもできます。

      print "@tanaka[0,2..4]";


 これをスライスといいます。抜き出す要素が多いとき便利です。



 (3)連想配列

 文字列を添え字(キーワード)とした配列を連想配列といいます。

 連想配列は変数名の前に%を付けます。

 たとえば、

      %Kojin = ("No","1","Name","Ryokan","Old","44");


 これは、

      $Kojin{No} = "1";
      $Kojin{Name} = "Ryokan";
      $Kojin{Old} = "44";



 と同じです。

 この場合、%が$に、( )が{ }になることに注意してください。

 連想配列を次のように普通の配列に代入してから、表示させることもできます。


      @data = %Kojin;
      print "@data\n";



配列のプログラム

#!/usr/local/bin/perl

print "Content-type: text/html\n\n";

print "<HTML>\n";
print "<TITLE>Hash</TITLE>\n";
print "<BODY>\n";
#
# 配列全体(リスト)
#
@tanaka = ("ABC","123","1.25","A13","DEF"); # 代入文
print "@tanaka<BR>\n"; # 表示、改行
#
# これは、次のように記述してもいい
#
$tanaka[0] = "ABC";
$tanaka[1] = "123";
$tanaka[2] = "1.25";
$tanaka[3] = "A13";
$tanaka[4] = "DEF";
print "@tanaka<BR>\n";
#
# 添え字に変数を使った場合
#
print "添え字が文字の時<BR>\n";
$n = "3";
print "$tanaka[$n]<BR>\n";
#
# スライス
#
print "スライス<BR>\n";
print "@tanaka[0,2..4]<BR>\n";
#
# 連想配列
#
print "連想配列1<BR>\n";
%Kojin = ("No","1","Name","Ryokan","Old","44");
print "$Kojin{No}\n";
print "$Kojin{Name}\n";
print "$Kojin{Old}\n";
print "<BR>\n";
#
# 連想配列を普通の配列に代入
#
print "連想配列2<BR>\n";
@data = %Kojin;
print "@data\n";

print "</BODY>\n";
print "</HTML>\n";



 このプログラムに適当な名前をつけて、テキストモードでアップロードします。

 パーミッションは755に設定してください。



  テスト実行

      hairetu.cgi

 をクリックしてください。



  うまく動きましたか?

  動かないときは、サポート掲示板へどうぞ。

[もくじへトップページへ前ページへ次ページへ]