Ruby公式ドキュメントの trap::スコープ、制御構造 より、 ・ローカル変数は本当にローカル。Perl の my とかとは違う # Ruby local = "hoge" def hoge print local, "\n" # 未定義。エラー end hoge # Perl my $local = "hoge"; sub hoge { print $local, "\n"; #=> hoge } hoge; この項目を書いた人は my ... を ローカル変数 宣言だと思ったんだろうか... my ... は レキシカル変数 宣言であって、ローカル変数じゃないのに。 前掲のコードにおいては、 $local のスコープは登場時からコード末尾まで。 例えば、 #!perl use strict; package hoge; my $local = 1; package main; pr