home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

Perl/codepiece/manupilate_INC

Perl/codepiece/manupilate_INC

Perl / codepiece / manupilate_INC
id: 134 所有者: msakamoto-sf    作成日: 2007-03-16 23:02:20
カテゴリ: Perl 

  • @INCをスクリプトで調整し、任意のディレクトリの.pmファイルをuseできるようにしてみる。
  • <= Perl 5.8
  • ./manip_inc01.pl
#!/usr/bin/perl

use strict;
use warnings;
use File::Basename;

# adjustment for include path (terminate with path separator)
BEGIN {
    my (undef, $__base_dir, undef) = fileparse($0); # File::Basename
    push(@INC, $__base_dir);
}

use test::Test1;

print $test::Test1::msg, "\n";
  • ./test/Test1.pm
package test::Test1;

use strict;
use warnings;

our $msg = "Hello, test::Test1!";
  • 出力
$ perl ./manip_inc01.pl
Hello, test::Test1!
  • ポイント:File::Basename::fileparseで取得できる、スクリプトファイル自身($0)のディレクトリを、BEGINブロックで@INCにpushしている。
  • PHPの擬似コードだと次の様になる。
<?php
$__basedir = realpath(dirname(__FILE__));
set_ini("include_path", get_ini("include_path").PATH_SEPARATOR.$__basedir);
...
  • ちなみに、デフォルトでは"."が最初から@INCに入っている場合もあるので、適宜利用し、かつ混乱しないこと。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2008-12-28 23:03:13
md5:a9ec7e048c79c0910b41957608edb93f
sha1:5b819c072a767c7d726112daa7dd95348c7331f9
コメント
コメントを投稿するにはログインして下さい。