MT4のソースコードを見て勉強しているのですが、メインスクリプトのmt.cgiに下記のような記述があります。


use strict;
use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/lib" : 'lib';
use MT::Bootstrap App => 'MT::App::CMS';

これらはどういう動作を行っているのでしょうか。
読み始めて即座に躓いてしまいました・・・
すみませんが、よろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:2008/01/05 03:15:17
  • 終了:2008/01/05 14:21:32

ベストアンサー

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402008/01/05 11:52:30

ポイント60pt
use strict;

Perl は標準だと未定義の変数でもそのまま使えたりしてある程度以上の規模の開発には向かない。

この宣言をすることでコーディングミスなどの基本的なレベルのバグを軽減できる。

strict - 安全ではないコンストラクトを制限する Perl プラグマ


use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/lib" : 'lib';

use lib 自体がライブラリの検索パスを追加する構文。

環境変数 MT_HOME が定義されていればそちらの下の lib ディレクトリを、

定義されていなければカレントディレクトリの下の lib ディレクトリをライブラリの検索パスに追加する。


use MT::Bootstrap App => 'MT::App::CMS';

これは MT 自体のアプリケーションの挙動を制御していると思われる。

まず、MT::Bootstrap パッケージを読み込み、その import メソッドの引数として、App => 'MT::App::CMS' と言う配列を渡している。

それによってどうなるかは MT 自体の中身の話なので勉強してください。

id:n_maco2

ご回答ありがとうございます。

PHPと違ってperlは省略形が多すぎて読みにくくて。。。省略形は辞書も引きようがないですし(笑

色々勉強になります、ありがとうございました

2008/01/05 14:21:02
  • id:b-wind
    >PHPと違ってperlは省略形が多すぎて読みにくくて。。。省略形は辞書も引きようがないですし
    それとは別の問題と思うが。どれも省略形じゃなくて正規の構文ですよ。
    ちゃんとマニュアルに書いてあるし。
    http://perldoc.jp/docs/perl/5.6.1/perlvar.pod

    まぁ新しい言語に慣れるまではそんな感じだとは思いますが。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません