Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  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";
  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。