代码之家  ›  专栏  ›  技术社区  ›  user181548

有没有办法避免将Perl版本号放在非标准位置的Perl模块的“use lib”行中?

  •  3
  • user181548  · 技术社区  · 15 年前

    我正在尝试将一些Perl模块安装到一个非标准位置,我们称之为 /non/standard/location

    perl Makefile.PL PREFIX=/non/standard/location
    make;make install
    

    安装它们。

    在使用模块的脚本中,似乎有必要指定一个长目录路径,包括Perl版本,如下所示:

    #!/usr/local/bin/perl
    use lib '/non/standard/location/lib/perl5/site_perl/5.8.9/';
    use A::B;
    

    use lib 或者我可以使用的其他语句,它不是很长很详细,也不包括Perl的实际版本,这样如果Perl的版本升级了,我就不必回去在程序中编辑它了?

    2 回复  |  直到 15 年前
        1
  •  5
  •   zoul    15 年前

    也许你没有回答所有的问题,但你知道吗 local::lib ? 当它在perl系统中可用时,您可以 use local::lib . 如果没有:

    use lib glob '~/perl5/lib/perl5';
    use local::lib;
    

    这可能有点限制,不知道它在Windows上是如何工作的,但对于我来说已经足够了。当然,如果可以在脚本运行之前设置环境( .bashrc SetEnv 等等),你可以忘记 use lib glob ,因为已在中设置了正确的路径 PERL5LIB .

        2
  •  0
  •   user181548 user181548    15 年前

    perl Makefile.PL --no-manpages --skipdeps PREFIX=/non/system/location INSTALLSITELIB=/non/system/location/lib INSTALLSITEBIN=/non/system/location/bin INSTALLMAN1DIR=/non/system/location/man/man1 INSTALLMAN3DIR=/non/system/location/man/man3
    

    我欢迎对此提出任何建设性的批评。我想用 --no-manpages 但是 INSTALLMAN1DIR 似乎无论如何都是必要的。