perl ブロック内でのローカル変数
#ブロック内でのローカル変数の定義 $variable = "グローバル"; print "サブルーチン実行前: $variable\n"; #サブルーチン呼び出し &block(); print "サブルーチン実行後: $variable\n"; #サブルーチン本体 sub block{ my($variable) = "ローカル"; print "\tブロック前: $variable\n"; { my($variable) = "ブロック"; print "\t\tブロック内: $variable\n"; } print "\tブロック後: $variable\n"; } #実行結果 # サブルーチン実行前: グローバル # ブロック前: ローカル # ブロック内: ブロック # ブロック後: ローカル # サブルーチン実行後: グローバル #補足 # 変数が効果を持つ範囲を確認するため、同じ変数名で幾つかの変数を定 # 義している。はじめに、グローバル変数$variableを定義し、内容「グローバ # ル」を表示する。次にblockサブルーチンを呼び出し、その中でmyで宣言した # 変数$variableに「ローカル」を代入し、表示する。さらに{}で囲んだブロッ # ク内でmyで宣言した変数$variableに「ブロック」を代入し表示する。{}の # ブロックを抜けてから$variableの内容を表示するとブロックの前で代入した # 「ローカル」が表示される。このことからmyで宣言した変数が、ブロックを抜 # けて無効になった事がわかる。最後に、blockサブルーチンを抜けた後で # $variableの内容を表示するとサブルーチンを呼び出す前の$variableの内容 # 「グローバル」が表示される。このことからサブルーチン内でmyで宣言した変 # 数が、サブルーチンを抜けて無効になり、グローバル変数の内容が復活したこ # とが分かる。
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る