Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^2: what would you like to see in perl5.12? (require $class)

by ysth (Canon)
on Aug 22, 2007 at 19:42 UTC ( #634500=note: print w/ replies, xml ) Need Help??


in reply to Re: what would you like to see in perl5.12? (require $class)
in thread what would you like to see in perl5.12?

This is a good idea. It's backwards incompatible (in the case where someone really wanted to search @INC for a file named 'HTTP::Request'), but it seems to me within the level of incompatibility that's acceptable for a full version number change. (Though YMMV.)


Comment on Re^2: what would you like to see in perl5.12? (require $class)
Re^3: what would you like to see in perl5.12? (require $class)
by ikegami (Pope) on Aug 22, 2007 at 19:54 UTC

    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.

      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

        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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://634500]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (11)
As of 2014-08-28 13:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (261 votes), past polls