2012-03-02 36 views
2

使用cpan命令工作得很好,如從Linux命令行安裝Perl模塊文檔:的perldoc未示出用於安裝perl模塊

$ cpan [Module] 

和精加工餘可以通過查看模塊的文檔後:

$ perldoc [Module] 

但通過cfengine這樣做,這只是自動化腳本cpan命令(在 shellcommands:列表),該模塊被安裝,但perldoc不會爲它工作:

$ perldoc Text::Histogram 
No documentation found for "Text::Histogram".* 

然而,調用:

$ man Text::Histogram 

會工作得很好。

爲此設置一個通用環境變量(如perldoc手冊頁建議的)似乎不可行,因爲我觀察到.pm文件被放置在非常不同的地方。

有關此的任何提示?

+1

當您嘗試運行常規cpan命令時,您是否正在使用不同的用戶(比cfengine)? – summea 2012-03-02 23:06:04

+1

你的系統上是否有多個'perl',但可能只有一個'perldoc'?試試'perl $(which perldoc):: Module'。 – mob 2012-03-02 23:18:46

+0

雖然我想知道這個問題的答案,但如果它與'man'一起使用,你需要什麼'perldoc'?只是好奇。嗯...也許如果你安裝了[pmtools套件](http://search.cpan.org/dist/pmtools-1.10/),我可能會詢問有關衝突的manpaths和'@ INC'路徑。 – tchrist 2012-03-03 16:50:11

回答

2

perldoc搜索Perl模塊包含路徑(@INC)。如果perldoc找不到它,perl找不到它。嘗試perl -wle 'use The::Module'以查看perl是否可以加載它。如果它可以找到它,那麼奇怪的事情正在發生。

如果你通過第三方程序安裝了一個模塊(即使它只是使用cpan客戶端),它會被安裝到不同的位置和/或使用不同的perl,重新使用命令行。有許多原因,這三個最有可能的是...

  • 它有不同的PATH比你發現的cpan不同的副本不同的perl
  • 它將cpan客戶端配置爲不同,以安裝到不同的PATH
  • cpan被配置爲安裝在主目錄下,並且以不同的用戶身份運行。

該模塊還有一個奇怪的機會沒有文檔。

你可以看到perldoc正在做什麼來找到perldoc -D The::Module模塊(這可能是舊版本的-v)。