/cgi-bin
|-- /libs ←サブディレクトリー 属性 700
| module files ← モジュールファイル 属性 600
use module;とそのまま記述しても実行出来ますが、先に書いたような理由で、ディレクトリーを分ける場合は、 モジュールを入れたサブディレクトリーを@INCに登録しなければなりません。それには、以下のような記述をします。
BEGIN { unshift(@INC, "/cgi-bin/libs"); }
この一行を、useやrequireの行より先に記述します。
/ cgi-bin / libs
| Carp.pm
| Exporter.pm
|-- /Time
| Local.pm
以下の関数が利用出来るようになります。
use Time::Local;
$time = timelocal($sec,$min,$hours,$mday,$mon,$year);
$time = timegm($sec,$min,$hours,$mday,$mon,$year);
○サンプルスクリプトソース:実行結果
/ cgi-bin / libs
| Carp.pm
| Exporter.pm
| strict.pm
| vars.pm
|-- /Time
| localtime.pm
| tm.pm
|-- /Class
| Struct.pm
以下の関数が利用出来るようになります。
use Time::localtime; printf "Year is %d\n", localtime->year() + 1900; printf "Month is %d\n", localtime->mon() + 1; printf "Day is %d\n", localtime->mday() ; printf "Hour is %d\n", localtime->hour() ; printf "Minite is %d\n", localtime->min() ; printf "Second is %d\n", localtime->sec() ; printf "Weekly number is %d\n", localtime->wday() ; printf "Yearly number is %d\n", localtime->yday() ;○サンプルスクリプトソース:実行結果
/ cgi-bin / libs
| vars.pm
| shellwords.pl
| overload.pm
| Fcntl.pm
| Exporter.pm
| DynaLoader.pm
| Config.pm
| CGI.pm
| Carp.pm
|-- /CGI
| Apache.pm
| Carp.pm
| Cookie.pm
| Fast.pm
| Push.pm
| Switch.pm
(送信formに ENCTYPE="multipart/form-data" を利用する時は以下のファイルも必要です)
(※しかし、autoディレクトリーの中身はOS専用に展開されるので、
windows用perlのファイルでは@homepageで動作させられないようです。)
| AutoLoader.pm
|-- /auto
|-- /Dynaloader
| すべてのファイル
|-- /Fcntl
| すべてのファイル
以下の関数が利用出来るようになります。
use CGI;
my $data = new CGI;
my $mode = $data->param('MODE');
# post または get データからkeyword='MODE'のvalue取得
use CGI qw/:standard/;
print header(); # text/html header 生成
○サンプルスクリプトソース:実行結果
/ cgi-bin / libs
| strict.pm
/ cgi-bin / libs
| Carp.pm
| Exporter.pm
| strict.pm
| vars.pm
| overload.pm
| constant.pm
| integer.pm
|-- /Math
| Complex.pm
| Trig.pm
以下の関数が利用出来るようになります。
use Math::Complex;
$re = 2;
$im = 3;
$cx = cplx($re, $im);
print qq(\n [$re + $imι] = ), $cx ;
print q(; c_dirty = ), $cx->{c_dirty} = 0;
print q(; p_dirty = ), $cx->{p_dirty} = 1;
print q(; format = ), $cx->display_format('cartesian');
$rho = 1;
$theta = 1/2*3.14;
$cxe = cplxe($rho, $theta);
print qq(\n [$rho + $theta°]= ), $cxe ;
print q(; p_dirty = ), $cxe->{p_dirty} = 0;
print q(; c_dirty = ), $cxe->{c_dirty} = 1;
print q(; format = ), $cxe->display_format('polar');
print qq(\n [$cx] + [$rho + $theta°]= ), $cx + $cxe ;
○サンプルスクリプトソース:実行結果
/ cgi-bin / libs
| vars.pm
| Config.pm
| Carp.pm
use lib LIST;
↓これは、ほぼ以下と同等だけど、lib.pmにはエラーチェック機能がある
BEGIN { unshift(@INC, LIST) }
@homepageでは、use libを使うために先に BEGIN { unshift(@INC, '/cgi-bin/libs') }
が必要となるので、利点は少なそうだけど、さらに別のディレクトリーを
ユーティリティスクリプト格納場所として使うような時に。
また、他から貰ってきたスクリプトで use lib が使われている時に。
/ cgi-bin / libs
| Carp.pm
| Exporter.pm
| vars.pm
| strict.pm
use strict; と同時に使ってこそ意味があると説明されているので、
必要ファイルにstrict.pmも入れました。