Perlのmyとlocalの違い

Perlでは、変数宣言がありません。また、変数スコープはグローバル(サブルーチンを越えてプログラム全体で共有される)です。
しかし、my関数とlocal関数を使うことにより、あたかもローカル変数宣言のようにできます。
また、myとlocalでの違いは、以下の通りです。

myで宣言された変数はレキシカルスコープ(lexical scope)を持ちますが、
localで宣言された変数はダイナミックスコープ(dynamic scope)を持ちます。
myで宣言された変数は宣言されたブロックのみで有効です。
一方、localで宣言された変数は呼び出したサブルーチンの先でも有効です。
http://blog.mag2.com/m/log/0000015670/15143023.html

myはローカル変数、localはグローバル変数の一時的な置き換え