| title: | Re PATCHv2 RFC gitweb Prepare for splitti |
|
Jakub Narebski wrote:
On Wed, 7 Jul 2010, Ævar Arnfjörð Bjarmason napisał:
On Wed, Jul 7, 2010 at 09:57, Jakub Narebski <jnareb@xxxxxxxxx wrote:
[...]
use strict;
use warnings;
+
+use File::Spec;
+# __DIR__ is taken from Dir::Self __DIR__ fragment
+sub __DIR__ () {
+ File::Spec- rel2abs(join , (File::Spec- splitpath(__FILE__))[0, 1]);
+}
+use lib __DIR__ . /lib;
+
What was the result of the discussion about using __DIR__ again? You
only need to use that method when you call a perl program whith *then*
includes a module. If you just need to add the lib/ directory relative
to the script youre invoking you can use FindBin:
use FindBin qw($Bin);
use lib "$Bin/lib";
Its
use lib "$Bin/../lib";
(I dont like this ../lib here, but thats my personal preference).
But you might be right that I am overly cautious in avoiding FindBin.
It is nowadays not recommended solution (on #perl, for example), but
it is perhaps true that the conditions where it fails are not fulfilled
for the case of gitweb.
Or perhaps not:
KNOWN ISSUES
If there are two modules using FindBin from different directories
under the same interpreter, this wont work. Since FindBin uses a
BEGIN block, itll be executed only once, and only the first caller
will get it right. This is a problem under **mod_perl** and other
persistent Perl environments, where you shouldnt use this module.
Gitweb can be used under mod_perl (to be more exact ModPerl::Registry).
And there is also nowadays plackup option for git-instaweb, which
also would have, I think, this problem with FindBin.
--
Jakub Narebski
Poland
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at rel="nofollow" vger.kernel.org/majordomo-info.html vger.kernel.org/majordomo-info.html
|