$"でRubyをプチハック

Rubyでrequireを使うと

#一回目
require 'pstore'
=> true #成功

#二回目
require 'pstore'
=> false #無駄なことはしないよ

 
じゃあ、無駄なことをさせてやろうじゃないか。
$"を調べてみよう
 

puts $"
 ・
 ・
pstore.rb

ずらずらファイル名が並んだと思う。
実はRubyでは一度requireしたものは$"にpushされる。
そして、requireはその配列内にすでにあるファイルは展開しない。
つまりは

require 'pstore'
=> false

$".each_with_index{|c, i|  $"[i]="" if c == "pstore.rb" }  #も一度requireしたいライブラリを消す

require 'pstore'
=> true  #展開された

 
・・・。
 
うん、だからなんだ。