perl リファレンス1
#スカラー変数をリファレンスで渡し、サブルーチンで内容を変更する $string = "私は太郎です。"; #サブルーチン実行前 print "実行前: $string\n"; #リファレンスを渡してサブルーチン実行 &sub_reference(\$string); #サブルーチン実行後: print "実行後: $string\n"; #サブルーチン sub sub_reference{ #リファレンスを受ける my($referece) = @_; #リファレンスのスカラー変数の内容を変更 $$referece =~ s/太郎/花子/; } #実行結果 # 実行前: 私は太郎です。 # 実行後: 私は花子です。 #\$stringによって変数$stringのリファレンスを返し、それをサブルーチンの引数にしている。 #サブルーチンの中では、myで宣言したローカル変数$refereceにそのリファレンスを代入している。 #$$refereceではリファレンスによって元の変数の内容が取得されるので、その中の「太郎」を「花子」 #に置き換えている。 #サブルーチンのなかではmyを使ってリファレンスをローカル変数として定義しているが、そのリファレンス先 #の内容を変更するとグローバル変数の内容が操作される。
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る