From 221e5dbc861edab87d502b2e8d85f5310d0fd1e4 Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Thu, 14 Apr 2011 06:19:07 -0700 Subject: [perl #88486] IO::File does not always export SEEK* Commit d963bf0 made perl set @IO::File::ISA automagically. Commit 15e6cdd made filehandle methods load IO::File automagically. Commit efc5c7c attempted to solve the problem that having IO::Handle loaded causes IO::File to be bypassed, rendering 15e6cdd only semi-effective (see [perl #87940]), by requiring IO::File inside IO::Handle. That commit ended up breaking several CPAN modules, because IO::File adds @IO::Seekable::EXPORT to its own exports. If IO::Seekable is loaded first (before IO::File), before setting up its @EXPORT it loads IO::Handle, which loads IO::File, which tries to load IO::Seekable, which is in %INC already, and which is hence wait- ing for IO::File to load before it sets its own @EXPORT. So IO::File sees @IO::Seekable::EXPORT empty. Hence, every piece of code that tries to import SEEK_END from IO::File will simply not get it if IO::Seekable is already loaded (explicitly or, e.g., by File::Temp). This commit hopefully fixes the breakage and the problem that efc5c7c attempted to fix by loading IO::File only inside IO::Handle::new (the only method that IO::File overrides). --- META.yml | 1 + 1 file changed, 1 insertion(+) (limited to 'META.yml') diff --git a/META.yml b/META.yml index 4dc98fefa1..af1423f60b 100644 --- a/META.yml +++ b/META.yml @@ -77,6 +77,7 @@ no_index: - dist/IO/t/io_dir.t - dist/IO/t/io_dup.t - dist/IO/t/io_file.t + - dist/IO/t/io_file_export.t - dist/IO/t/io_linenum.t - dist/IO/t/io_multihomed.t - dist/IO/t/io_pipe.t -- cgit v1.2.1