load と requireの違い
rubyのloadとrequireの違いは、ドキュメントでは以下のように説明されています。
Kernel.#require は同じファイルは一度だけしかロードしませんが、 Kernel.#load は無条件にロードします。
また、require は拡張子.rb や .so を自動的に補完しますが、 load は行いません。
しかし、以下のプログラムではloadもrequireも正しく動作するにもかかわらず、
#! ruby253 -EWindows-31J
# -*- mode:ruby; coding:Windows-31J -*-
$:.push("c:/test/test")
load "sub.rb"
require "sub.rb"
以下のプログラムではrequireのみが失敗します。loadは成功します。
#! ruby253 -EWindows-31J
# -*- mode:ruby; coding:Windows-31J -*-
$:.push("c:/テスト/test")
load "sub.rb"
require "sub.rb"
動作環境はWindows7 + Ruby2.5.3です。この挙動はrubyの仕様上正しいのか、二番目の例でrequireを成功させるにはどのように記述すべきなのか、教えていただけるとたいへん助かります。よろしくお願いします。