Your code works perfectly well on my system (Win2k+perl-5.6.1+Tk-800.022).
It did not reported any errors.
The main reason of this difference is, in my opinion, that on Win32 getOpenFile calls native to Win32 standard
dialogbox, whereas on Linux Perl+Tk constructs that box by itself and, probably, does not supports your case
(by mistake).
why I have strange de-javu feeling? :)
Warmest wishes,
Vadim.