プログラミング初心者の Perl 入門日記

Perl超初心者の勉強記録です。失敗もすべて公開中!

my と local の違い


★ 楽天のターゲティング広告を無効にしたのに、
まだ以前チェックしたことがある商品が表示されるので
もう1度設定ページに行ってみたら、有効・無効の設定ができる項目があと2つも……。
全て無効にしました……売りつけられる感が何かいい気持ちがしない(-_-)
でもビジネスをするときは、自分のこの心理を覚えておきたいですね。



先日、変数をローカル変数として宣言するときに使う
my と local について触れました。

昨日は my しか試さなかったけど、今日は local もやってみます。
まずは2つの違いから……。

まず my だけど、局所化が完全なものになるから
サブルーチンから呼び出されたサブルーチンから
参照することはできない、という特徴があります。

どういうことかやってみますね↓

#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";

$bug = "クモ";
&dislike;

sub dislike
{
my $bug = "ゴキブリ";
&like;
print "嫌いな虫は$bugです(>_<)<BR>\n";
}

sub like
{
print "好きな虫は$bugです(^^)<BR>\n";
}

結果はこちらです↓

好きな虫はクモです(^^)
嫌いな虫はゴキブリです(>_<)


サブルーチン dislike から呼び出された サブルーチン like から
my $bug は参照できてないですね。

ちなみに my は Perl5 でしか使えないみたいです。

local は Perl4 から使えます。
こちらは my と違って、サブルーチンから呼び出された
サブルーチンからでも参照することができます。

試してみました↓

#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";

$bug = "クモ";
&dislike;

sub dislike
{
local $bug = "ゴキブリ";
&like;
print "嫌いな虫は$bugです(>_<)<BR>\n";
}

sub like
{
print "好きな虫は$bugです(^^)<BR>\n";
}

結果はこちら↓

好きな虫はゴキブリです(^^)
嫌いな虫はゴキブリです(>_<)


サブルーチン dislike から呼び出された サブルーチン like からでも
my $bug が参照できてますね♪


<ご案内>----------------------------------------------------------------------------------------

kojingamekaihatu.jpg


個人ゲーム開発で暮らすための5ステップ 19,800円

----------------------------------------------------------------------------------------<ご案内>



こちらのページを参考にさせていただきました↓
第8章 サブルーチン
ありがとうございました<(_ _)>



関連記事
  1. 2012/06/08(金) 14:52:33|
  2. 基礎編
  3. | コメント:0
<<サブルーチンに引数を渡してみる<その2> | ホーム | サブルーチンの局所化について>>

コメント

コメントの投稿


管理者にだけ表示を許可する