[PREVIOUS CHAPTER]
[NEXT CHAPTER]
7 FML 内部ã«ãŠã‘るデータ構é€
ã“ã“ã§ã¯ fml 内部処ç†ã«ãŠã‘ã‚‹ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã«ã¤ã„ã¦è§£èª¬ã—ã¾ã™ã€‚ã“れらã®çŸ¥
è˜ã¯æ”¹é€ ã™ã‚‹ä¸Šã§å¿…é ˆã®äº‹æŸ„ã§ã—ょã†ãŒã€å˜ã«å¤‰æ•°ã‚’ 1 or 0 ã«ã‚»ãƒƒãƒˆã™ã‚‹ã
ã‘ã—ã‹è¨å®š (config.ph) ã‚’ã„ã˜ã‚‰ãªã„ãªã‚‰èªã‚€å¿…è¦ã¯ãªã„ã§ã—ょã†ã€‚
7.1 変数åã® naming convention
â—‹ 大文å—([A-Z0-9_]+)ã ã‘ã®å¡Šã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã§ä½¿ã†ç›®çš„ã®
Global 変数ã§ã™ã€‚
Example: $MAIL_LIST
â—‹ "1å˜èªžã®å…ˆé 一文å—ãŒå¤§æ–‡å—ã€æ®‹ã‚Šã¯å°æ–‡å—"ã®å¡Šã‹ã‚‰ãªã‚‹å˜èªžã¯ãƒ¡ãƒ¼
ル本体やヘッダをSubroutineé–“ã§æ¸¡ã—ã‚ã†ãŸã‚ã® Global 変数ã§ã™ã€‚
$MailBody $Reply_to
%Envelope *_cf
例外: *_cf ã¯ ã‚·ã‚¹ãƒ†ãƒ æƒ…å ±ã‚’ã‚‚ã£ã¦ã„ã‚‹åå‰ç©ºé–“ã§ã™ã€‚
(_cfã¯ã»ã¨ã‚“ã©ä½¿ã‚れã¦ã„ã¾ã›ã‚“。将æ¥ã¯æ¶ˆåŽ»ã™ã¹ãã§ã™)
%Envelope ã¯æœ€ã‚‚é‡è¦ãªå¤‰æ•°ã§ã™ã€‚
ã—ã‹ã—ãªãŒã‚‰ã€ã“ã†ã„ã†ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã¯æœ¬æ¥å‡ºæ¥ã‚‹ã ã‘å°‘ãªãã™ã‚‹ã¹ãã§ã™ã€‚
ã¾ãŸã€@Fld ã«ã‚ˆã†ã«ç¾åœ¨ã‚°ãƒãƒ¼ãƒãƒ«ã¨ã—ã¦ä½¿ã‚れã¦ã„ãªã„ã®ã«å残ã¨ã—ã¦
残ã£ã¦ã—ã¾ã£ã¦ã„ã‚‹ã‚‚ã®ã‚‚ã‚りã¾ã™ã€‚
ãŒã€ã“れã¯ã‚‚ã‰ã“ã®ã¾ã¾ä½¿ã†ã—ã‹ãªã„よã†ã§ã™ã€‚
注æ„:
$debug ã ã‘ã¯å…¨éƒ¨å°æ–‡å—ã§ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã¨ã„ã†ä¾‹å¤–ã§ã™ã€‚
便利ã ã‹ã‚‰ã¨ã„ã†ã®ã¨ã€æ´å²çš„ã«ãã†ãªã£ã¦ã„ã‚‹ã¨ã„ã†ã ã‘ãªã®ã§
今後ãã†ã„ã†å¤‰æ•°åã¯ä½œã‚‰ã‚Œã‚‹ã“ã¨ã¯ã‚りã¾ã›ã‚“。
ã¾ãŸã€æ˜”ユーザ定義ã§ä»Šã¯å†…部変数扱ã„ã«ãªã£ãŸ $ML_MEMBER_CHECK ã‚‚
例外ã§ã™ã€‚
â—‹ å°æ–‡å—ã¯åŸºæœ¬çš„ã«local variableã§ã€å¤§æŠµã¯subroutineã®å…ˆé ã§local宣言
ã•れã¦ã„ã¾ã™ã€‚
○ 補足
ãªãŠã€Directory を定義ã™ã‚‹ $*_DIR タイプã®å¤‰æ•°ã«ã¯
$*_DIR $DIR ã‹ã‚‰ã®ç›¸å¯¾ãƒ‘ス
$FP_*_DIR 絶対パス
ã®ï¼’種類ãŒã‚りã¾ã™ã€‚ $FP_*_DIR タイプã®å¤‰æ•°ã¯è‡ªå‹•çš„ã«å¤‰æ›ã•れ定義ã•れ
ã¾ã™ã€‚基本的ã«ã¯çµ¶å¯¾ãƒ‘スãŒä½¿ã‚れã¾ã™ã€‚$FP_ ã®å¤‰æ•°ã¯ fml.pl ã®åˆæœŸåŒ–ã§
自動的ã«è£œæ£ã•れã¤ã¤è¨å®šã•れã¾ã™ã€‚ã»ã¨ã‚“ã©å…¨ã¦ã®å ´é¢ã§çµ¶å¯¾ãƒ‘スを用ã„ã¾
ã™ã€‚
$FP_TMP_DIR
$FP_VARDB_DIR
$FP_VARLOG_DIR
$FP_VARRUN_DIR
$FP_VAR_DIR
$FP_SPOOL_DIR
7.2 関数åã® Naming Convention
一部ã®ä¾‹å¤–を除ã„ã¦â€ï¼‘å˜èªžã®å…ˆé 一文å—ãŒå¤§æ–‡å—ã€æ®‹ã‚Šã¯å°æ–‡å—â€ã®å¡Šã‹ã‚‰
ãªã‚‹å˜èªžã§ã™ã€‚基本的㫠subroutine ã®åå‰ã¯X11風ã ã£ãŸã‚Šã—ã¾ã™ã€‚最近ã®
ã¯lisp風味も混ã–ã£ã¦ã¾ã™:-) #ãŠãŠã‚€ãX11風ã§ã™ã
â—‹ fml 1.5 以é™ã§ã¯è‹¥å¹²ä¾‹å¤–ãŒã‚りã¾ã™ã€‚
ファイルæ“作をã™ã‚‹é–¢æ•°ã§
変æ›ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã¨ã—ã¦ã® f_関数 å
#ã„ã¤ã‹ã€ãªããªã‚‹ã ã‚ã†
ã¨
ãã®ãƒ¢ãƒ¼ãƒ‰ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ Cnstr_関数 å
ãã®ãƒ¢ãƒ¼ãƒ‰ã®ãƒ‡ã‚£ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ Destr_関数 å
ãŒä¾‹å¤–ã§ã™ã€‚ã€Œå°†æ¥ replace ã™ã‚‹ã¹ãã§ã™ã€ã¨å½“時言ã£ãŸã¾ã¾ replace ã•れ
ãªã„ã¾ã¾ã§ã™ãŒ:-)
7.3 %Envelope (ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ル)
%Envelope ã«ã¯ä»Š fml ã‚’èµ·å‹•ã—ãŸãƒ¡ãƒ¼ãƒ«ã®å†…容(ヘッダã€ãƒ˜ãƒƒãƒ€ã®å„フィール
ãƒ‰ã€æœ¬æ–‡ç‰)ãŒæ ¼ç´ã•れã¾ã™ã€‚ã¾ãŸã€ãã®ãƒ¡ãƒ¼ãƒ«ã«å¯¾ã—ã©ã†ã„ã†METHODã§REPLY
ã‚’è¿”ã™ã¹ãã‹ï¼Ÿã‚„ã€sendmailã¨ã®é€šä¿¡ç‰ã®è¨å®šã«é–¢ã—ã¦ã®ä»˜åŠ æƒ…å ±ã‚‚
%Envelope を通ã˜ã¦æ¸¡ã•れã¾ã™ã€‚ãれã¯ã“ã®ãƒ¡ãƒ¼ãƒ«ã«å¯¾ã™ã‚‹ METHOD ã®å®šç¾©ã¨
ã¿ãªã—ã¦ã„ã‚‹ã‹ã‚‰ã§ã™ã€‚
sendmail ã® struct envelope e; ã«å¯¾å¿œã™ã‚‹ã‚‚ã®ã§ã™ã€‚
ã—ã‹ã—ã€perl 4 を本æ¥ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã«ã—ã¦ã„ã‚‹ãŸã‚
$Envelope->$Header->$From = "uja@domain";
ã®ã‚ˆã†ãªä½¿ã„æ–¹ã¯ã—ã¾ã›ã‚“(ã§ããªã„)。ã“れã¨åŒæ§˜ã®ã“ã¨ã‚’æ„図ã—ãŸã‚·ãƒ³ã‚¿ãƒƒ
クスãŒ
$Envelope{"h:From:"} = "uja@domain";
ã§è¡¨ç¾ã•れã¦ã„ã¾ã™ã€‚ h = header ã§ From: ã¯ã‚ã–㨠Field ã ã¨ã‚ã‹ã‚Šã‚„ã™
ã„よã†ã« : ã¾ã§å«ã‚ã¦ã„ã¾ã™ã€‚
以下 %Envelopeã®KEYã«ã¤ã„ã¦èª¬æ˜Žã—ã¾ã™ã€‚
#ãƒãƒƒã‚·ãƒ¥ãªã®ã§ã€KEY => VALUE ㌠$Envelope{KEY} ã®å€¤ãŒ VALUE ã§ã™
h: ã§ã¯ã˜ã¾ã‚‹ã‚‚ã®KEYã¯ã€Œãƒ˜ãƒƒãƒ€ã®å„フィールドã®ãƒ‡ãƒ¼ã‚¿ã€ã§ã™ã€‚
h:Capital: 補æ£ã•れãŸãƒ‡ãƒ¼ã‚¿ e.g. h:Subject:
h:lower-case: 元メールã®ãƒ‡ãƒ¼ã‚¿ e.g. h:subject:
ãれ以外㫠ãã® Envelope ã®ãƒ¡ãƒ¼ãƒ«ã‚’ã©ã†ã„ã†ãƒ¢ãƒ¼ãƒ‰ã§å‡¦ç†ã™ã‚‹ã‹ï¼Ÿ
ã‚„ã€ãã®ãƒ¡ãƒ¼ãƒ«ã¸ã®REPLYã€ã‚¨ãƒ©ãƒ¼ãƒ¬ãƒãƒ¼ãƒˆå‡¦ç†ã‚’ã©ã†ã™ã‚‹ã‹ï¼Ÿ
ã¨ã„ã†METHODã®æŒ‡å®šç‰ã®ä»˜åŠ æƒ…å ±ã‚‚ä»˜ã‘åŠ ãˆã‚‹ã“ã¨ã‚‚ã‚りã¾ã™ã€‚
[ヘッダ関係]
h:field: 上述ã®ãƒ˜ãƒƒãƒ€ï¼šãƒ•ィールド:è¨å®šå€¤
fh:field: field(å°æ–‡å—) 㯠fml.pl ãŒã‚る値を強制ã™ã‚‹
例: fh:to: 㯠To: ã‚’ $Envelope{'fh:to:'} ã®å€¤ã«ã™ã‚‹
oh:field: field 㯠original ã®ãƒ˜ãƒƒãƒ€ãƒ•ィールドを使ã†
GH:field: コマンドã®çµæžœã‚’è¿”ã™ãƒ¡ãƒ¼ãƒ«ã¯ GenerateHeader() ã¨ã„ã†
ルーãƒãƒ³ã§ãƒ¡ãƒ¼ãƒ«ãƒ˜ãƒƒãƒ€ã‚’生æˆã™ã‚‹ã€‚
ãã“ã§ã®å€¤ã‚’変更ã—ãŸã„ãªã‚‰ã“ã®KEYを使ã†ã€‚
Addr2Reply: コマンドã®çµæžœã®è¿”事を返ã™ã‚¢ãƒ‰ãƒ¬ã‚¹
reply-to: > From:
[メールãŒå‘¼ã³å‡ºã™ã¹ãモードやメソッドã®Config]
macro:x x 㯠sendmail ã® $x ã«å¯¾å¿œã™ã‚‹å†…容をä¿å˜
mode:x モードè¨å®šå€¤
mci:mailer mci 㯠Mail Connection Information (MCI)
mci:mailer 㯠ipc(SMTP) ㋠prog(exec sendmail)
ã®ã©ã¡ã‚‰ã‹ã§ã‚ã‚‹
[内部表ç¾]
Header 元メールã®ãƒ˜ãƒƒãƒ€
Body 元メールã®ãƒ¡ãƒ¼ãƒ«æœ¬æ–‡
Hdr é€ã‚Šå‡ºã™ãƒ¡ãƒ¼ãƒ«ã®ãƒ˜ãƒƒãƒ€ï¼ˆ&Smtpã®ç›´å‰ã«ç”Ÿæˆã•れる)
message メールをサーãƒã¸é€ã£ãŸãƒ¦ãƒ¼ã‚¶ã¸ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸
error 管ç†è€…ã¸ã®(エラー)メッセージ
MIME ISO-2022-JP is detected (toggle Flag)
UnixFrom Unix From
Hdr2add $SUPERFLUOUS_HEADER ã®æ™‚ã«ã¤ã‹ã†ãƒãƒƒãƒ•ã‚¡
nclines # command ã®è¡Œæ•°
nlines メール本文ã®è¡Œæ•°
preamble メール本文ã®å‰ã«ã¤ã‘ã‚‹æ–‡ç«
trailer メール本文ã®å¾Œã«ã¤ã‘ã‚‹æ–‡ç«
tmp:x temporary used
例: Subject:
$Envelope{'h:subject:'} ã¯æ¥ãŸãƒ¡ãƒ¼ãƒ«ãã®ã‚‚ã®
$Envelope{'h:Subject:'} ã¯æ¥ãŸãƒ¡ãƒ¼ãƒ«ã® Re: ã‚’ã¨ã‚Š
å¿…è¦ãªã‚‰ [Elena 100] ã®ã‚ˆã†ãªã‚‚ã®ã‚’処ç†ã—ãŸã‚‚ã®
ã®ã‚ˆã†ãªé•ã„ãŒã‚る。é…é€ã•れるヘッダã¨å¤§æ–‡å—ã§ã¯ã˜ã¾ã‚‹å˜èªžã¯æ¬¡ã®ã‚ˆã†ã«
対応ã™ã‚‹ã€‚
é…é€ãƒ¡ãƒ¼ãƒ«ã®ãƒ˜ãƒƒãƒ€: %Envelope
Field key in %Envelope
---------------------------------------
Date: h:Date:
From: h:From:
To: h:To:
Subject: h:Subject:
7.4 ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã®åˆæœŸåŒ–
å„データã®åˆæœŸåŒ–ã¯æ¬¡ã®é †åºã§è¡Œãªã‚れる。
$DIR $LIBDIR @INC ã®åˆæœŸåŒ–
&InitConfig
&SetDefaults
%Envelope
DNS, @HdrFieldsOrder, and others
&LoadConfig
$DIR/config.ph
sitedef.ph
&SetOpts
command line options
COMPATIBILITY CODE
&Parse
%Envelope 㸠Header Body ç‰ã®å…ƒã€…ã®å†…容をä¿å˜
&GetFieldsFromHeader
%Envelope 㸠h:field: ãŠã‚ˆã³ h:Field: をセット
&FixHeaderFields
h:Field: ã¸ã®å„種補æ£ã‚’行ãªã†
&CheckCurrentProc
%Envelope ã«ã‚ˆã‚‹è¨å®šã€å‹•作モードãƒã‚§ãƒƒã‚¯
ã“ã®å¾Œå„種フックãŒãれãžã‚Œã®å ´æ‰€ã§è©•価ã•れる。
Example:
$START_HOOK
$SMTP_OPEN_HOOK
$FML_EXIT_HOOK
ã“ã®å¾Œãƒãƒƒã‚¯ã•れã€ãƒãƒƒã‚¯ä¸‹ã§ã‚¯ãƒªãƒ†ã‚£ã‚«ãƒ«ãªä½œæ¥ãŒè¡Œãªã‚れる。作æ¥ãŒçµ‚ã‚‹
ã¾ã§ alarm(3) ã«ã‚ˆã‚‹å‰²ã‚Šè¾¼ã¿ä»¥å¤–ã§ã¯ã“ã®ãƒãƒƒã‚¯ã¯ã¯ãšã‚Œãªã„。
7.5 ディレクトリ変数
6.0
起動時ã®ä¸€ç•ªæœ€åˆã®æ®µéšŽã§ã¯ $DIR $LIBDIR @INC ã¨ã„ã†å¤‰æ•°ã®è¨å®šã‚’ç†é ã«
å„種変数ã®åˆæœŸåŒ–ãŒè¡Œãªã‚れã¾ã™(上述)。$DIR $LIBDIR @INC ãŒèµ·å‹•時ã«ã©ã†
評価ã•れ使ã‚れã¦ã„ã‚‹ã‹ã¯ã€Œfml ã®åŸºæœ¬å‹•作ã¨èµ·å‹•オプション…ã€ã®ç« を見る
ã¨åˆ†ã‹ã‚‹ã§ã—ょã†ã€‚
6.0
以下ã§ã¯ DIRECTORY 一覧を示ã—ã¾ã™ã€‚
@INC (å‚考)
ã“れ㯠Perl ã® include file ã® search path
$DIR @INC(original) $LIBDIR ...
ã®é †ç•ªã«æŽ¢ã•れる。
$DIR
config.phã®ã‚ã‚‹å ´æ‰€ã€ã„ã‚ゆるMLã®HOME
@INC ã®å…ˆé ã«è¨å®šã•れる
$SPOOL_DIR $DIR/spool
ï¼ï¼¬ã®è¨˜äº‹ã‚’æ ¼ç´ã™ã‚‹å ´æ‰€
[$DIRã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã§è¨å®šã•れるもã®]
[FULL PATH 化ã•れãŸå¤‰æ•°]
$FP_TMP_DIR $DIR/$TMP_DIR
$FP_VARDB_DIR $DIR/$VARDB_DIR
$FP_VARLOG_DIR $DIR/$VARLOG_DIR
$FP_VARRUN_DIR $DIR/$VARRUN_DIR
$FP_VAR_DIR $DIR/$VAR_DIR
$FP_SPOOL_DIR $DIR/$SPOOL_DIR
7.6 $TMP_DIR ã«ã¤ã„ã¦
ï¼ï¼¬ã‚µãƒ¼ãƒã®ä½œæ¥ã‚¨ãƒªã‚¢ã«ã¯ãƒ‡ãƒ•ォールトã§ã¯ $DIR/tmp (ã¤ã¾ã‚Š $TMP_DIR =
'./tmp';) を使ã„ã¾ã™ã€‚変更ã—ãŸã„å ´åˆã¯ $TMP_DIR を変更ã—ã¦ä¸‹ã•ã„。
/tmp ã¨ã‹ /usr/tmp ã¨ã‹ã¯ä¸‡ãŒä¸€ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ®‹ã‚‹ã¨å«Œãªã®ã§ä½¿ã„ã¾ã›ã‚“。
private communication ã®ãƒ•ァイルを public ãªå ´æ‰€ã«ãƒ•ァイルを残ã™ã“ã¨ã¯
ã—ãªã„ãŸã‚ã§ã™ã€‚
ãã®ä»–ã«ã‚‚ 4.4BSD 風㮠directory æ§‹é€ ã®ä¸ã«å„種ã®ãƒã‚°ã‚„ã‚ャッシュãŒä¿
å˜ã•れã¾ã™ã€‚
7.7 è¨å®šãƒ•ァイル群
8.0
[メンãƒãƒ¼ã®ãƒªã‚¹ãƒˆé–¢ä¿‚]
$MEMBER_LIST $DIR/members
8.0
メンãƒãƒ¼ãƒªã‚¹ãƒˆ(èªè¨¼ã®ã¿ã«ä½¿ã†)
$ACTIVE_LIST $DIR/actives
8.0
ï¼ï¼¬ã®é…é€ãƒªã‚¹ãƒˆ
$REJECT_ADDR_LIST $DIR/spamlist
../filter 2.13
投稿/コマンド/自動登録をã¯ã˜ã‚ã¨ã—ã¦å…¨ã¦ã®å ´åˆã«ã¤ã„ã¦ã€å¼¾ããŸ
ã„アドレスã®ãƒªã‚¹ãƒˆã€‚自動的ã«ç™»éŒ²ã™ã‚‹æ©Ÿèƒ½ã‚‚ã‚る。
[å„種ã®èª¬æ˜Žã€ã”案内関係ã®ãƒ•ァイル]
$OBJECTIVE_FILE $DIR/objective
ï¼ï¼¬ã®ç›®çš„を書ã„ãŸãƒ•ァイル
$GUIDE_FILE $DIR/guide
ï¼ï¼¬ã®ä¸€èˆ¬å‘ã‘ã”æ¡ˆå†…(ガイド)
$HELP_FILE $DIR/help
ï¼ï¼¬ã®HELPã€ã‚³ãƒžãƒ³ãƒ‰ã®è§£èª¬ç‰
$DENY_FILE $DIR/deny
ï¼ï¼¬ãŒãƒ¡ãƒ³ãƒãƒ¼ãƒã‚§ãƒƒã‚¯ã‚’ã—ã¦ã„る時
メンãƒãƒ¼ä»¥å¤–ã‹ã‚‰ãƒ¡ãƒ¼ãƒ«ãŒæ¥ãŸæ™‚ã«è¿”ã™æ–ã‚Šã®æ–‡ç«
$WELCOME_FILE $DIR/guide
../how_to_subscribe 5.0
ï¼ï¼¬ãŒè‡ªå‹•ç™»éŒ²ã®æ™‚ã€ç™»éŒ²æ™‚ã«é€ã£ã¦ã‚ã’ã‚‹æ–‡ç«
$CONFIRMATION_FILE $DIR/confirm
../how_to_subscribe 5.9
自動登録㧠confirmation モードã®éš› reply ã‚’è¿”ã™
confirmation ã®èª¬æ˜Žã®ãƒ•ァイル
[ãƒã‚°ãƒ•ァイル関係]
$LOGFILE $DIR/log
ãƒã‚°
$MGET_LOGFILE $DIR/log
5.0
mgetã®ãƒã‚°ã€‚デフォールトã§ã¯â†‘ãƒã‚°ãƒ•ァイルã¨åŒã˜
$SMTPLOG $VARLOG_DIR/_smtplog
プãƒã‚»ã‚¹é–“通信(SMTP)ã®ãƒã‚°(デãƒãƒƒã‚°ã®å½¹ã«ç«‹ã¤)
$SUMMARY_FILE $DIR/summary
MLã®è¨˜äº‹ã®ã‚µãƒžãƒª
$SEQUENCE_FILE $DIR/seq
MLã®è¨˜äº‹ç•ªå·
$MSEND_RC $VARLOG_DIR/msendrc
../digest 2.0
ã¾ã¨ã‚ãŠãりã®åˆ¶å¾¡ãƒ•ァイル
$LOCK_FILE $VARRUN_DIR/lockfile.v7
flock() を使ã‚ãªã„時ã®ãƒãƒƒã‚¯ã§ä½¿ã†ãƒ•ァイル
$LOG_MESSAGE_ID $VARRUN_DIR/msgidcache
message-id cache ファイル
(ML自身ã§ã®ç„¡é™ãƒ«ãƒ¼ãƒ—を防ããŸã‚ã®ã‚ャッシュ)
$MESSAGE_ID_CACHE_BUFSIZE
Message-ID cache ファイルサイズ
$INDEX_FILE $DIR/index
ã“ã®ãƒ•ァイルã¯ãªãã¦ã‚‚æ§‹ã‚ãªã„。indexコマンドã§è¡¨ç¤ºã—ãŸã„内容
を書ã。ã“ã®ãƒ•ァイルãŒãªã„å ´åˆã¯ãã®å ´ã§MLã®HOME内容を調ã¹ã¦è¿”
ã™ã€‚
7.8 å˜ã«ä¾¿åˆ©ãªãŸã‚ã«ã‚る変数
$DO_NOTHING
何もã—ãªã„ã¨ã„ã†åˆ†å²ã‚’ã™ã‚‹ãŸã‚ã®å¤‰æ•°ã€‚特殊ãªã‚µãƒ¼ãƒã‚’作る時や
特別ãªHOOKã‚’ã‹ã‘ãŸã‚Šã™ã‚‹å ´åˆã«æœ‰ç”¨ã§ã‚る。
$NULL
ダミー:-) # 別ã«ã“ã‚“ãªå¤‰æ•°ã„らãªã„
#define null (char *)0 ã¿ãŸã„ãªã‚‚ã®ã ã¨æ€ã£ã¦ã‚‚らãˆã°è‰¯ã„
$FML
カーãƒãƒ«å†…ã®ãƒ—ãƒã‚»ã‚¹ãƒ†ãƒ¼ãƒ–ルを書ã変ãˆã‚‹éš›ã«ä½¿ã†å¤‰æ•°
$FACE_MARK
(å˜ãªã‚‹æ„›æ•¬:-)。å„種リクエストã®çµæžœã‚’è¿”ã™æ™‚ã«ãŠåˆ¥ã‚Œã®æ–‡ç« ã®è…‹ã«ã¤ã‘ã‚‹
e.g. P(^^)
Be seeing you P(^^)
ã®ã‚ˆã†ã«ãªã‚‹ã€‚
$INCLUDE_SIM_PATH
Simulation ã§ä½¿ã†ã€‚æ°—ã«ã—ãªã„ã§ä¸‹ã•ã„:)
$UNISTD
Declare "Unix Standard" flag. undefined on Windows NT4
$LOCKFILE
lock file variable in some libraries. It may be uncontrolled
by a user.
%MAKE_FML
config.ph ã«ç¾ã‚Œã‚‹ãƒãƒƒã‚·ãƒ¥ %MAKE_FML 㯠makefml ã§ä½¿ã†ãŸã‚ã®ã‚‚ã®ã§ã™ã€‚
makefml 以外ã§ã¯ä½¿ã‚れã¾ã›ã‚“。ç¾åœ¨ã§ã¯ä½¿ã‚れã¦ã„ã¾ã›ã‚“ã€ç„¡è¦–ã—ã¦ä¸‹ã•ã„。
â—‹ å¤ã„変数ã¨ã—ã¦ä»–ã®åå‰ã«ç½®ãæ›ãˆã‚‰ã‚ŒãŸã‚‚ã®
$GUIDE_REQUEST -> $GuideRequest
$RPG_ML_FORM_FLAG -> $COMMAND_SYNTAX_EXTENSION
â—‹ obsolete ãªã‚‚ã®
$NON_PORTABILITY
7.9 内部ã§ä½¿ã‚れã¦ã„る変数を調ã¹ã‚‹ã«ã¯ï¼Ÿ
config.ph ã§
$DUMPVAR = 1;
やコマンドラインã§
fml.pl --DUMPVAR 引数
ã¨ã—㦠fml を呼ã³å‡ºã™ã¨å…¨ã¦ã®å¤‰æ•°ã‚’ dump ã—ã¾ã™ã€‚ã“ã®å ´åˆã¯Perlã«ã¤ã„
ã¦ãã‚‹ dumpvar.pl ライブラリを利用ã—ã€åå‰ç©ºé–“ã‹ã‚‰å¤‰æ•°ãƒªã‚¹ãƒˆã‚’引ã£å¼µã‚Š
出ã—ã¦ã„ã¾ã™ã€‚
ã¡ãªã¿ã« fmlserv.pl ã¯åŒæ§˜ã®ã‚„り方ã§åå‰ç©ºé–“ã® switch を利用ã—ã¦è¤‡æ•°ã®
ï¼ï¼¬ã‚’疑似的ã«å®Ÿè¡Œã—ã¦ã„ã¾ã™ã€‚
[PREVIOUS CHAPTER]
[NEXT CHAPTER]