Do you mean %INC? Changing %INC to match is not required, and I wasn't suggesting that it should be done. People who want to search %INC (or @INC) can continue to do the same class to path conversion they are already doing.
But if you wanted to change %INC to class names, you could maintain compatibility with old scripts by placing both the class name and paths in %INC.
| [reply] [Watch: Dir/Any] [d/l] [select] |
No, I meant search @INC, like:
$ echo 1 > Foo::Bar
$ strace perl -e'require "Foo::Bar"' 2>&1 |grep Foo
execve("/usr/bin/perl", ["perl", "-erequire \"Foo::Bar\""], [/* 38 var
+s */]) = 0
stat64("/etc/perl/Foo::Bar", 0xbffcabac) = -1 ENOENT (No such file or
+directory)
stat64("/usr/local/lib/perl/5.8.8/Foo::Bar", 0xbffcabac) = -1 ENOENT (
+No such file or directory)
stat64("/usr/local/share/perl/5.8.8/Foo::Bar", 0xbffcabac) = -1 ENOENT
+ (No such file or directory)
stat64("/usr/lib/perl5/Foo::Bar", 0xbffcabac) = -1 ENOENT (No such fil
+e or directory)
stat64("/usr/share/perl5/Foo::Bar", 0xbffcabac) = -1 ENOENT (No such f
+ile or directory)
stat64("/usr/lib/perl/5.8/Foo::Bar", 0xbffcabac) = -1 ENOENT (No such
+file or directory)
stat64("/usr/share/perl/5.8/Foo::Bar", 0xbffcabac) = -1 ENOENT (No suc
+h file or directory)
stat64("/usr/local/lib/site_perl/Foo::Bar", 0xbffcabac) = -1 ENOENT (N
+o such file or directory)
stat64("./Foo::Bar", {st_mode=S_IFREG|0644, st_size=2, ...}) = 0
open("./Foo::Bar", O_RDONLY|O_LARGEFILE) = 3
| [reply] [Watch: Dir/Any] [d/l] |
The change I propose would have require search for Foo/Bar.pm and Foo/Bar.pmc when supplied "Foo::Bar" for argument, just like when it's supplied Foo::Bar for argument.
The only thing it would break is the ability to require modules with :: in the file name. That's extremely unlikely since it would break on Windows and old Macs.
| [reply] [Watch: Dir/Any] [d/l] [select] |