文での暗黙的な代入に注意してください。ローカル関数を作成する必要がある場合。使わなければなりません。以下の例では効果的にローカル関数を生成するのに使うことができます。hash.配列やハッシュのある要素だけを一時的に変更したい場合。dynamics:一つの要素だけを局所化することが可能です。misbehave.しかし、レキシカル変数であっても動作します。前のものでは、この操作は間違った状況になる可能性がありました。陽に参照渡しを使う必要があるでしょう。このセクションでは改めて説明するようなことはしません。elements:幾つか単純な例を挙げましょう。}とはいうものの、これは通常のリストを返す機構を使っています。通常の呼び出し規約と同じことです。%d);のように書くのはトラブルのもとです。always.これらの構文は単純にうまくいきません。それに加え、この関数は引数として二つの配列、二つのハッシュを受け取りません。良くありませんがプログラムを明確にできます。table.この例では、シンボルテーブルの別名づけをするために型グロブを使っています。変数を使った場合にはうまくいきません。シンボルテーブルにあるからです。リファレンスも動作します。以下のようにできます。渡すことに注意してください。限られた形のコンパイル時引数チェックに対応しています。取るのとまったく同じ引数を取ります。関数宣言はコンパイル時に可視でなければなりません。解釈したときのみです。それは組み込み関数と同じように振る舞う、ということです。サブルーチンと同じように振る舞います。なんの影響も及ぼさないので、この規則から外れます。メソッド呼び出しはプロトタイプを行う/行わないによる影響を受けません。コンパイル時には不確定だからです。解釈される幾つかの関数プロトタイプを挙げておきましょう。そのキャラクターで始まるものでなければならないことを表します。適用したリファレンスとなります。comma.バックスラッシュが付けられていないキャラクターは特別な意味を持っています。とってしまい、さらにリストコンテキストを強制します。表される引数はスカラーコンテキストを強制されます。要求しないような無名サブルーチンを要求します。型グロブに対するリファレンスを許しています。型グロブに対するリファレンスにもなります。else.セミコロンは、必須の引数と省略可能な引数とを分割します。@や%の前ではこれは冗長です。その他のものを吸収します。