TTにテンプレートを相対PATHで渡したら、「file error - ./XXXX.tt: relative paths are not allowed (set RELATIVE option)」なんて怒られたわけです。
Template/Provider.pm によると、以下のような感じになってます。
our $RELATIVE_PATH = qr[(?:^|/)\.+/]; ... 中略 ... elsif ($name =~ m/$RELATIVE_PATH/o) { # anything starting "./" is relative to cwd, allowed if RELATIVE set ($data, $error) = $self->{ RELATIVE } ? $self->_fetch($name) : $self->{ TOLERANT } ? (undef, Template::Constants::STATUS_DECLINED) : ("$name: relative paths are not allowed (set RELATIVE option)", Template::Constants::STATUS_ERROR); }
うは、こんな単純な正規表現で見てるわけですか。なので、ファイル名の頭から"./"を取ればOKです*1。
ついでに、この部分のソースからTOLERANTオプションとか、TTでの内部のエラーの取り扱いとかが見えますね。Constants::STATUS_* にエラー状態が定義されていて、それを戻すことでエラーを通知しているようです。例外じゃないんですね〜。
*1:INCLUDE_PATH オプションで '.' を指定してあれば。