__FILE__と$0の違い

2012-09-18#ruby

ググればいろんなところで解説されているけど、実際にコード書いて確かめてみた。

puts "__FILE__: #{__FILE__}"
puts "$0: #{$0}"
require_relative filename
% ruby filename.rb
__FILE__: filename.rb
$0: filename.rb
% ruby require_filename.rb
__FILE__: /Users/naoty/workspace/ruby/filename.rb
$0: require_filename.rb
if __FILE__ == $0
  # hogehoge
end