前ページ



$abc$a123#$_abc#$123#誤 ( 数値で始まっている )




ページの先頭へ



scalar変数


 scalar変数は、数値、文字列値、リファレンス等の値を1つだけ保持します。

 prefix ( $ ) が付き、変数の値は数値、文字列値の区別はなく、自動的に変換されます。 例えば文字列に数値を代入すれば数値変数としても扱われます。 scalar変数の初期値は数値の場合は 「 0 」、文字の場合は 「 "" 空白文字 」 になります。

$a = 10;    # 数値を代入
$b = "20";    # 文字列を代入
$c = $a + $b;    # 数値と文字列を加算
print $c ;    # 表示→ ( 30 )

 ※数値は浮動小数点数になります。


ページの先頭へ

配列



 配列はPrefix"@" がつき、各配列の要素にアクセスする場合は "0" から始まる数値を添え字として使用します。またこの時の数値は "[ ]"で囲みます。また添え字には変数も使用可能です。


 配列の初期化と参照は以下のように行います。
# 配列の初期化
@week = ('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat') ;

# 要素への参照 "mon"が表示されます
print $week[1] ;


sunmontuewedthufrisat $week[0]$week[1]$week[2]$week[3]$week[4]$week[5]$week[6]@week
配列は、全体に対する扱いの場合は、Prefix "@" を使用します。配列の各要素はスカラ変数となるので、そのアクセスはPrefix "$" つけた変数を使用し"[ ]"で囲みます。


hash

 hashとは配列変数の添字がキーと呼ばれる文字列となったものになります。 prefix "%" がつき、個々のscalar値へアクセスする場合には、prefix"$" つけた文字列をキーとして "{ }" で囲みます。


hashの初期化と参照は以下のように行います。


# hashの初期化
%week = ('sun', 'first', 'wed', 'middle', 'fri', 'end') ;

# 要素への参照 "end"が表示されます
print $week{fri} ;



firstmiddleend $week{sun}$week{wed}$week{fri}%week

hashは、全体に対する扱いの場合は、Prefix "%" を使用します。配列の各要素はスカラ変数となるので、そのアクセスはPrefix "$" つけた変数を使用し"{ }"で囲みます。


typeglob
typeglobとは、同じ識別子:identifier(プレフィクス以降)を持つ変数グループをまとめて処理出来るようにするポインタの集合です。





 typeglobのサンプル

 $palm = "hello hello" ;
@palm = (1,2,3,4) ;
*dreams = *palm;    # copy the typeglob
print $dreams;      # 表示は "hello hello
print $dreams[1] ;    # 表示は( 2 )









scope ( 可視範囲 )


 変数のscope ( 可視範囲 ) とは、変数を参照出来る範囲の事です。 
 Perl のディフォルトは、 グローバル変数になり どこからでも参照出来ます。 このため 大規模なスクリプト開発をする場合は my , local などの装飾子をつけて、明確に管理しましょう。



$a = 12 ;    # $aの宣言、代入
&Sub_A ;    # サブルーチンの呼び出
&Sub_B ;    # サブルーチンの呼び出し
print $a ;    # 表示→ ( 123 )
print $b ;    # 表示→ ( 23 )

sub Sub_A {
print $a ;    # 表示→ ( 12 )
$b = 23 ;    # $bへの代入
}

sub Sub_B {
print $b ;    # 表示→ ( 23 )
$a = 123 ;    # $aへの代入
}

次ページ