2010-10-08 59 views
5

我现在正在使用perlbrew来管理多个版本的perl,但perlbrew是全局的。如果我在任何shell中执行perlbrew switch perl-5.10.1,则所有shell和脚本现在将使用perl 5.10.1版本。没有隔离。有没有什么办法让perlbrew开关局部地在shell中,或者是否有类似的工具能够在本地更改活动的perl?是否有非全球性的perlbrew?

+0

另请参见[我应该如何安装多个版本的Perl?](http://stackoverflow.com/questions/1289564/how-should-i-install-more-than-one-version-of-perl )和[http://stackoverflow.com/questions/398221/how-do-you-manage-perl-modules-when-using-a-package-manager/398397#398397](如何在使用Perl模块时使用一个包管理器?) – Ether 2010-10-09 00:55:35

+0

看到这个相关的SO问题/答案:http://stackoverflow.com/questions/3776390/how-can-i-control-the-perl-version-used-when-submitting-grid-jobs/ 3776538#3776538 – draegtun 2010-10-09 09:35:38

回答

4

在更新版本的Perlbrew中,您可以执行perlbrew use perl-5.12.3或其他任何操作,您将使用该版本的Perl,但只能在当前的shell会话中使用。其他会议不会受到影响。

+0

我必须尝试一下。它看起来正是我想要的。 – 2011-02-18 20:22:50

5

只是不要使用perlbrew。它所做的就是为你改变符号链接。它应该可以节省你的工作,但当它不工作时,就不再有使用它的理由。

我说说我是怎么做的Make links to per-version toolsThe Effective Perler。我总是知道我使用的perl,因为我永远不必记住哪一个我切换到最后,并且我不打扰任何期望符号链接后面的特定版本的其他东西。你仍然可以使用perlbrew来安装perls,但它并不能为你节省那么多工作。

+0

[也在这里讨论](http://stackoverflow.com/questions/398221/how-do-you-manage-perl-modules-when-using-a-package-manager/398397#398397)in more详情。 – Ether 2010-10-08 23:30:13

+1

我知道我总是可以在我的路径中安装perl5.10.1作为'perl5.10.1',然后明确指定版本,但是我想我正在寻找的行为是'perl'运行某个默认版本的perl 。然后,如果我在一个shell中运行'perlbrew switch',那么该shell中的'perl'指向新版本,但所有其他shell和程序将继续运行默认的perl。和其他perl环境一样:模块,可执行文件,manpages/perldocs。我想我必须学习如何使用您的文章链接到的Furlani模块包来获得我想要的。 – 2010-10-09 01:05:19

+1

我建议你重新定义你想要的。这是更少的工作。 :) – 2010-10-09 01:41:23