例: パラメータが次のようになっている場合、
{
v0=>0, v1=>1, v2=>2, v3=>3,
va=>[0,1,2,3],
2=>[0,1,2,3],
vh=>{v2=>'hello',va=>[0,1,2,3]},
defined=>'yes,defined',
}
${%evalperl "0" v0}
${%evalperl "1" v1}
${%evalperl "2" v2}
${%evalperl "3" v3}
${%evalperl "[0,1,2,3]" va}
${%evalperl "[0,1,2,3]" $2 }
${%evalperl "{v2=>'hello',va=>[0,1,2,3]}" vh}
${%evalperl "'yes,defined'" $defined}
以下の式は次のように展開されます。
$${va[2]} => ${va[2]} | # 数値で配列インデクスを指定 |
$${va[-1]} => ${va[-1]} | # マイナスの添字は配列の末尾から |
$${va[v2]} => ${va[v2]} | # 別のデータ参照式の値で添字を指定 |
$${vh["v2"]}=> ${vh["v2"]} | # 左項がハッシュの場合も使えます |
$${vh.v2} => ${vh.v2} | # 右項がキーワードの場合はそのキーワードを参照パスに連結します |
$${va.-1} => ${va.-1} $${va.(1+2)}=> ${va.(1+2)} | # 値を参照パスに連結: 項が参照ではない値の場合 |
$${vh."v2"}=> ${vh."v2"} | # 値を参照パスに連結: 項が文字列定数の場合 |
$${a.2 }=> ${va.2} | # 値を参照パスに連結: 項が数値定数の場合 |
$${va.v3} => ${va.v3} | # 左項が配列だった場合、右項は数値コンテキストで解釈されます |
$${vh.(va.2)}=> ${vh.(va.2)} | 項が参照パスだった場合はパス同士をを連結します。用途は特にありませんが対称性のため。 |
$${ $2.2}=> ${$2.2} | $ を使った参照パスの例 |
$${ $.2.2}=> ${$.2.2} | $ を使った参照パスの例 |
$${ $[2].2}=> ${$[2].2} | $ を使った参照パスの例 |
$${ $defined }=> ${ $defined } | $ の直後では、予約キーワードは参照パスとして扱われます |
$${ $"defined" }=> ${ $"defined" } | $ の直後では、定数は参照パスとして扱われます |
$${ $.defined }=> エラーになります | '.' の右項は通常の式を書けるため、裸のdefinedは演算子として扱われます。 |