変数(Variable)





基本事項


DESC 変数は宣言なしで利用できる。 すべての変数は FileScope ( GlobalScope )になる
tmp = "a"; # スペルミスをした場合でも tnp という名前の変数が生成される。 tnp = "b";



型(Type)


型には 3 種類がある
Scalar Scalar 配列 スカラー連想配列
文字列は "" で囲む
# スカラーに数値, 文字列代入 $a = 10; $name = "test"; # "" 内でも 変数は展開される( bash 同様 ) print "my name is $name", "\n";



スカラ(Scalar)


SYNTAX $SYMBOL DESC 数値, 文字列, 参照 など 1 つの値


Array


SYNTAX @symbol DESC index 0 から順に並ぶ Scalar のセット(集合)のこと。


Hash


SYNTAX %symbol DESC key, val と関連づいた Scalar 値の集合のこと
{ # 代入, 参照 ともに Symbol には "$" をつける $gTest = "ccc"; } # ccc print $gTest; # bash 同様に "" 内でも展開 print "$gTest"; # '' はだめ print '$gTest';



LocalVariable


{ # Local my $talent = "Takajin"; print $talent, "\n"; }
{ my $var = "out" { # 同名の変数は {} の外の変数が隠蔽される my $var = "in"; } # RET: out print $var; }



グローバル変数(GlobalVariable)


# use strict では our 宣言がいる our $varGbl = "aaa"; # BAD # Global symbol "$varGbl" requires explicit package # our $varGbl = "aaa"; { }



特殊変数


Regexp 関連 $+ : () に最後にマッチした $& : マッチした文字列 $` : マッチした文字列の前の文字列 $' : マッチした文字列の後の文字列 $1 : () の文字列 POINT 代入演算子 を利用しないと "$_" に代入される Perl の慣用句
# 変数 $_ に代入される <INFILE>