Perlゼミ(サンプルコードPerl入門)

新着情報 06/25(月)更新 Perl入学式 イベント情報

2008年06月12日

サブルーチンの定義はスコープの影響を受けない

  1. Perl
  2. サブルーチン
  3. here

サブルーチンの定義は、スコープの影響を受けません。

{ 
  sub func {
    return 2;
  }
}
my $ret = func();

サブルーチンは、スコープの影響を受けません。一見すると、funcは、スコープの外では、見えないものと思ってしまいがちですが、そうなりません。

サブルーチンの定義は、コンパイル時に、シンボルテーブルというものに登録されます。シンボルテーブルは、プログラムのどこからでも参照することができるため、サブルーチンも、プログラムのどこからでも参照できます。

サンプル

サブルーチンの定義はスコープの影響を受けないことを理解するサンプルです。

use strict;
use warnings;

# サブルーチンの定義とスコープ
# サブルーチンは、スコープの影響を受けない。

{ 
  sub func {
    return 2;
  }
}

print "1: サブルーチンの定義は、スコープの影響を受けない。\n";
my $ret = func();
print "\$ret は、$ret です。\n";

  1. Perl
  2. サブルーチン
  3. here

通りすがり通りすがり 2008/09/17 23:00 my $rent = func(); は、
my $ret = func(); のtypoだと思われます。

perlcodesampleperlcodesample 2008/09/19 01:07  修正しました。
 コンパイルの時点でわかるエラーなのに、ちょっと修正してそのまま張ってしまったのかもしれません。気をつけます。
 ありがとうございます。

通りすがり通りすがり 2017/09/15 09:45 (本文)・・・一見すると、fucnは、・・・ は"func"のtypoかもしれません。

perlcodesampleperlcodesample 2017/09/25 22:00 ありがとうございます。修正しました。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証