15

perl程序技巧-检验系统环境或模块安装

这个程序是我在VirusFinder里面发现的,大家可以自行搜索它!

非常好用,建议大家写程序都可以加上这个!

print "\nChecking Java version...\n\n";
my $ret = `java -version 2>&1`;
print "$ret\n";
if (index($ret, '1.6') == -1) {
    printf "Warning: The tool Trinity of the Broad Institute may require Java 1.6.\n\n";
}
print "\nChecking SAMtools...\n\n";
$ret = `which samtools 2>&1`;
if (index($ret, 'no samtools') == -1) {
    printf "%-30s\tOK\n\n", 'SAMtools';
}else{
    printf "%-30s\tnot found\n\n", 'SAMtools';
}
my @required_modules = ("Bio::DB::Sam",
                        "Bio::DB::Sam::Constants",
                        "Bio::SeqIO",
                        "Bio::SearchIO",
                        "Carp",
                        "Config::General",
                        "Cwd",
                        "Data::Dumper",
                        "English",
                        "File::Basename",
                        "File::Copy",
                        "File::Path",
                        "File::Spec",
                        "File::Temp",
                        "FindBin",
                        "Getopt::Std",
                        "Getopt::Long",
                        "IO::Handle",
                        "List::MoreUtils",
                        "Pod::Usage",
                        "threads");
print "\nChecking CPAN modules required by VirusFinder...\n\n";
my $count = 0;
for my $module (@required_modules){
eval("use $module");
if ($@) {
printf "%-30s\tFailed\n", $module;
                $count++;
}
else {
printf "%-30s\tOK\n",     $module;
}
}
if ($count==1){
print "\n\nOne module may not be installed properly.\n\n";
}elsif ($count > 1){
print "\n\n$count modules may not be installed properly.\n\n";
}else{
print "\n\nAll CPAN modules checked!\n\n";
}

 

15

perl模块终极解决方案-下

其实可以手动下载local::lib, 这个perl模块,然后自己安装在指定目录,也是能解决模块的问题!

下载之后解压,进入:

 $ perl Makefile.PL --bootstrap=~/.perl  ##这里设置你想把模块放置的目录
 $ make test && make install
 $ echo 'eval $(perl -I$HOME/.perl/lib/perl5 -Mlocal::lib=$HOME/.perl)' >> ~/.bashrc

等待几个小时即可!!!

添加好环境变量之后,就可以用

perl -MCPAN -Mlocal::lib -e 'CPAN::install(LWP)'
这样的模式下载模块了,所有的模块都会存储在$HOME/.perl/lib/perl5 里面!!!
如果是新写的perl程序,需要在开头加入 use local::lib;   
# sets up a local lib at ~/perl5才能使用该模块!  非常重要,非常重要,非常重要!!!

 

其实你也可以直接打开 ~/.bashrc,然后写入下面的内容

PERL5LIB=$PERL5LIB:/PATH_WHERE_YOU_PUT_THE_PACKAGE/source/bin/perl_module; export PERL5LIB
可以把perl模块安装在任何地方,然后通过这种方式去把模块加载到你的perl程序!

 

15

perl模块终极解决方案-上

不管别人怎么说,反正我是非常喜欢perl语言的!

也会继续学习,以前写过不少perl模块的博客,发现有点乱,正好最近看到了关于local::lib这个模块。

居然是用来解决没有root权限的用户安装,perl模块问题的!

首先说一下,如果是root用户,模块其实没有问题,直接用cpan下载器,几乎能解决所有的模块下载安装问题!

但是如果是非root用户,那么就麻烦了,很难用自动的cpan下载器,这样只能下载模块源码,然后编译,但是编译有个问题,很多模块居然是依赖于其它模块的,你的不停地下载其它依赖模块,最后才能解决,特别麻烦

但是,只需要运行下面的代码:

wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile
echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile

就能拥有一个私人的cpan下载器,~/.profile可能需要更改为.bash_profile, .bashrc, etc等等,取决于你的linux系统!

然后你直接运行cpanm Module::Name,就跟root用户一样的可以下载模块啦!

或者用下面的方式在shell里面安装模块,其中ext是模块的安装目录,可以修改

 perl -MTime::HiRes -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext Time::HiRes;
perl -MFile::Path -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext File::Path;
perl -MFile::Basename -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext File::Basename;
perl -MFile::Copy -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext File::Copy;
perl -MIO::Handle -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext IO::Handle;
perl -MYAML::XS -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext YAML::XS;
perl -MYAML -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext YAML;
perl -MXML::Simple -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext XML::Simple;
perl -MStorable -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext Storable;
perl -MStatistics::Descriptive -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext Statistics::Descriptive;
perl -MTie::IxHash -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext Tie::IxHash;
perl -MAlgorithm::Combinatorics -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext Algorithm::Combinatorics;
perl -MDevel::Size -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext Devel::Size;
perl -MSort::Key::Radix -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext Sort::Key::Radix;
perl -MSort::Key -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext Sort::Key;
perl -MBit::Vector -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext Bit::Vector;
perl -M"feature 'switch'" -e 1 > /dev/null 2>&1 || cpanm -v --notest -l ext feature;

下面是解释为什么这样可以解决问题!!!

 

What follows is a brief explanation of what the commands above do.

wget -O- http://cpanmin.us fetches the latest version of cpanm and prints it to STDOUT which is then piped to perl - -l ~/perl5 App::cpanminus local::lib. The first - tells perl to expect the program to come in on STDIN, this makes perl run the version of cpanm we just downloaded.perl passes the rest of the arguments to cpanm. The -l ~/perl5 argument tells cpanm where to install Perl modules, and the other two arguments are two modules to install. [App::cpanmins]1 is the package that installs cpanmlocal::lib is a helper module that manages the environment variables needed to run modules in local directory.

After those modules are installed we run

eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`

to set the environment variables needed to use the local modules and then

echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile

to ensure we will be able to use them the next time we log in.

echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile

will hopefully cause man to find the man pages for your local modules.

 

 

 

 

 

 

 

 

24

perl的模块组织方式

如何使用自己写的私人模块

模块通俗来讲,就是一堆函数的集合。

Personally I prefer to keep my modules (those that I write for myself or for systems I can control) in a certain directory, and also to place them in a subdirectory. As in:

/www/modules/MyMods/Foo.pm
/www/modules/MyMods/Bar.pm

And then where I use them:

use lib qw(/www/modules);useMyMods::Foo; 

useMyMods::Bar;

As reported by "perldoc -f use":

It is exactly equivalent to
BEGIN { require Module; import Module LIST; }
except that Module must be a bareword.

Putting that another way, "use" is equivalent to:

  • running at compile time,
  • converting the package name to a file name,
  • require-ing that file name, and
  • import-ing that package.

So, instead of calling use, you can call require and import inside a BEGIN block:

BEGIN{require'../EPMS.pm';
  EPMS->import();}

And of course, if your module don't actually do any symbol exporting or other initialization when you call import, you can leave that line out:

BEGIN{require'../EPMS.pm';}
比如我的一个模块如下,命名为my_stat.pm
package my_stat;
sub mean{
my $sum=0;
$sum+=$_ foreach @_;
$sum/($#_+1);
}
#print &mean(1..10),"\n";
sub stddev{
$avg=&mean(@_);
#print "$avg\n";
my $sum=0;
$sum+=($_-$avg)**2 foreach @_;
sqrt($sum/($#_));
#It will be different if you use $#_+1;
#sqrt($sum/($#_+1));
}
#print &stddev(1..10),"\n";
1;
里面有我定义好的两个函数 mean 和 stddev , 那么我就可以在我的其它perl程序里面直接引用这个模块,从而使用我的两个自定义函数。
use lib "./";  #取决于你把自定义模块my_stat.pm放在哪个目录
use my_stat;
print my_stat::stddev(1..10),"\n";
17

perl操作pdf文档

大家看看就好,这个模块写的不怎么样,而且有高手已经写了一个pdftoolkit就是完全用这个模块实现了大部分pdf文档的操作

PDF::API2模块使用笔记

一:简单使用方法

use PDF::API2;

# Create a blank PDF file $pdf = PDF::API2->new();
# Open an existing PDF file $pdf = PDF::API2->open('some.pdf');
# Add a blank page $page = $pdf->page();
# Retrieve an existing page $page = $pdf->openpage($page_number);
# Set the page size $page->mediabox('Letter');
# Add a built-in font to the PDF $font = $pdf->corefont('Helvetica-Bold');
# Add an external TTF font to the PDF $font = $pdf->ttfont('/path/to/font.ttf');
 

# Add some text to the page

$text = $page->text();

$text->font($font, 20);

$text->translate(200, 700);

$text->text('Hello World!');

# Save the PDF $pdf->saveas('/path/to/new.pdf');

 

实例:

use PDF::API2;

$pdf=PDF::API2->new;

$pdf->mediabox('A4');

$ft=$pdf->cjkfont('Song');

$page = $pdf->page;

$gfx=$page->gfx;

$gfx->textlabel(50,750,$ft,20,"\x{Cool44}\x{4EA7}"); # 资产二字

$pdf->saveas('Song_Test.pdf');

 

二:主要对象及方法

1、pdf对象可以创造,可以打开,可以保存,可以更新,还有一堆参数可以设置

$pdf->preferences(%options)还可以设置一些浏览参数,不过本来pdf阅读器可以设置,没必要在这里花时间。

这个可以当做是个人创建pdf的保密信息,也许有一点用吧。

还可以可以设置页脚$pdf->pageLabel($index, $options

2、Page对象,可以新建,可以打开,可以保存(需要指定保存的位置)

$page = $pdf->page()

$page = $pdf->page($page_number)

$page = $pdf->openpage($page_number);

还可以更新旧的pdf,这样可以循环获取pdf页面不停的累积到一个新的pdf

$page = $pdf->import_page($source_pdf, $source_page_number, $target_page_number)

$pdf = PDF::API2->new();

$old = PDF::API2->open('our/old.pdf');   # Add page 2 from the old PDF as page 1 of the new PDF

$page = $pdf->import_page($old, 2);

$pdf->saveas('our/new.pdf');If $source_page_number is 0 or -1, it will return the last page in the document.

$count = $pdf->pages()Returns the number of pages in the document.

这样就可以写一个简单程序把我们的pdf文件合并

use PDF::API2;

my $new = PDF::API2->new;

foreach my $filename (@ARGV) {   my $pdf = PDF::API2->open($filename);   $new->importpage($pdf, $_) foreach 1 .. $pdf->pages;}$new->saveas('new.pdf'); $pdf->mediabox($name)

可以指定A4,A3,A5等等$pdf->mediabox($w, $h)可以指定宽度和高度$pdf->mediabox($llx, $lly, $urx, $ury)

3,还可以随意画点线面及表格,太复杂了就不看了

 

01

Perl及R及python模块碎碎念

老实说,模块其实是一个很讨厌的东西,但是它也实实在在的节省了我们很多时间,也符合我的理念:避免重复造轮子!

1,perl的那些模块

如果有root权限,用root权限

进入cpan然后install ExtUtils::Installed模块

这样就可以执行instmodsh这个脚本了,可以查看当前环境下所有的模块

Perl及R及python模块碎碎念178

当然也可以写出脚本来查询模块信息

[perl]

#!/usr/bin/perl

use strict;

use ExtUtils::Installed;

my $inst= ExtUtils::Installed->new();

my @modules = $inst->modules();

foreach(@modules)

{

my $ver = $inst->version($_) || "???";

printf("%-12s -- %s\n", $_, $ver);

}

exit 0; 

[/perl]

然后我顺便安装了几个我比较喜欢的模块,Net::Telnet,Net::POP3

安装的时候可以看到我们的perl模块都是安装在/usr/local/lib/perl/5.18.2里面的,还有这个目录/usr/local/share/perl/5.18.2/

其实可以直接查看@INC这个默认变量,perl -e '{print "$_\n" foreach @INC}'

Perl及R及python模块碎碎念646

就知道自己的perl安装在哪些位置了

 

万一没有root权限,那么除非是管理员安装了那些模块,否则很多都是不能用的,那么自己要想安装,就必须自己也用cpan,但是cpan只会把模块安装到自己的目录下面,那么每次使用这个模块都必须添加该模块到@INC这个变量里面,这样perl程序才能找到你自己安装的模块,如果是非root用户,使用cpan,那么一般会创建/home/yourname/.cpan这个隐藏目录下面存储个人的perl模块。

use lib '/home/your-home/perl_lib';

因为有cpan,安装模块也是非常方便的。

我测试了一下,install GD模块

Perl及R及python模块碎碎念1142

擦,好像这个模块安装不了,真奇怪,还需要root权限!可我记得我在前面的服务器没有root权限也安装过一些自己的包,好奇怪呀,可能是这个包的要求比较高吧!我之前安装成功过好几个包Mail-POP3Client等等。

那自己安装模块就只能下载源码包,随便安装后,添加目录到@INC了

2,R的包

如果有root权限,那么直接进入R,里面

> .libPaths()

[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"

[3] "/usr/lib/R/library"

这样就可以看到自己的R包都放在哪些目录下面,这样也可以进去查看这些目录里面的包。

另外一个命令,可以查看本机安装的R包有哪些!installed.packages()[,1]

Perl及R及python模块碎碎念1508

安装一个包也是非常简单的!

但是,如果没有root权限,也是很简单的,同样的install.packages即可,可以创建一个私人的R包存放目录。

~/R/x86_64-pc-linux-gnu-library/3.1

但是R包安装有时候会出现这种错误,但是只出现一次,所以一般是高手解决了。

R包安装 had non-zero exit status,解决方法是

apt-get install  tcl-dev tk-dev

sudo apt-get install libxml2-dev & sudo apt-get install libcurl4-openssl-dev

R这个东西,我个人是不怎么用的,因为数据处理的脚本都是用perl,也就用bioconductor的R包来画一些图,不然就是自己用ggplot2包画一些漂亮的图,但是是在windows平台的,不会在linux平台下面画图的,太麻烦了!

3、python模块安装

一.有root权限那一切好办啦!

直接下载包,然后进入,输入

python setup.py install的前提是你安装了 setuptools 工具

Traceback (most recent call last):

File "setup.py", line 6, in <module>

from setuptools import setup, Extension

ImportError: No module named setuptools

解决方法是apt-get install python-setuptools

当然只有在ubuntu才有这么高效啦!但是我还报错了

fatal error: Python.h: No such file or directory

重新搜索了一下,需要apt-get install python2.7-dev

安装这个python的库文件,里面才有python.h这个文件啦

也是全自动化完成啦!

Unpacking libpython2.7-dev:amd64 (2.7.6-8) ...

Selecting previously unselected package python2.7-dev.

Preparing to unpack .../python2.7-dev_2.7.6-8_amd64.deb ...

Unpacking python2.7-dev (2.7.6-8) ...

Processing triggers for man-db (2.6.7.1-1) ...

Setting up libpython2.7-dev:amd64 (2.7.6-8) ...

Setting up python2.7-dev (2.7.6-8) ...

然后终于不报错啦!!!!Python这个东西真难玩,我还是喜欢perl

Using /usr/lib/python2.7/dist-packages

Finished processing dependencies for rpy2==2.5.6

Python的模块都安装在/usr/lib/python2.7/dist-packages这个目录下面

 

二.没有root权限,就把python安装到自己的模块!安装之后就会增加一个.local目录,存放着python的模块。

 

Perl及R及python模块碎碎念2823

 

但是如果是自己目录安装python模块需要修改~/.bashrc这个文件,并且

export PYTHONPATH=$PYTHONPATH:/my/other/path

这样在python里面才能调用这个模块。

 

 

 

 

 

 

 

 

 

 

 

 

01

R的包(package)

关于R语言包的一些操作,挺重要的!!!

R的包(package)通常有两种:
1 binary package:这种包属于即得即用型(ready-to-use),但是依赖与平台,即Win和Linux平台下不同。
2 Source package: 此类包可以跨平台使用,但用之前需要处理或者编译(compiled)。

以下一些常用的包相关的函数:
.libPaths():查看包的安装目录

ls('package:ggplot2')可以查看该包里面所有的函数
library():查看已经安装的包目录
library(mypackage):载入mypackage包

getOption("defaultPackages"):查看启动R时自动载入的包。
help(package = 'mypackage'):查看‘mypackage’的帮助
args(function):查看函数的参数
example(function):自动运行该函数帮助文档中的例子,很赞!
demo("package"):展示一些包中demostration,需要再看下??
vignette('mypackage'):有的包,特别是bioconductor的包有vignette,用函数查看
openVignette('mypackage'):这个函数也可以查看vignette,更好用一些
RSiteSearch("helpinfor"):搜索R网站上的“helpinfor”相关信息
help.start():查看已经安装包的详细HTML文档,这个命令非常爽
更新:
search():查看当前载入的包

sessionInfo():查看R中载入的包
methods():查看某个S3泛型函数中所有的方法或者一个类中所有的方法(S3:S version 3)

showMethods(class = "myClass"):查看S4类的方法

findMethods("myMethods"):查看method的代码

class(myObject):查看某个对象的类
getClass(“class/package”):查看某个class或者包的具体内容

getSlots("class"):查看某个class的slot

slotNames(MyObject):查看某个对象的slot。

可以使用Myobject@slotNames访问对象的slot值,这个@设计实在是太爽了,可以连续用。
查询包内信息:1. ?function/method:查看某个“函数”或者“方法”的详细内容
2. class?graph::graph:查看“组”的详细内容的一个例子。这个例子的来源是查询graph包时候,查看其中class的信息,输入??graph后出现一个graph::graph-class
ls("package:mypackage"):查看"mypackage"中的所有对象。

安装source package方法

1 在终端输入 # R CMD INSTALL /.../mypackage.tar.gz
使用此方法,需要解决包依赖问题,即安装此包所依赖的包,安装过程有提示

2 也可以使用R的install.packages()函数安装
回答:可以使用install.packages()函数安装,而且比较简便,即联网即可装,装了就可用。
# R
> install.packages('mypackage')

回答2:可以使用install.packages()安装本地下载的包,尤其适用于在服务器上安装包

$ R

> install.packages( c("XML_0.99-5.tar.gz", "http://www.cnblogs.com/Interfaces/Perl/RSPerl_0.8-0.tar.gz"), repos = NULL, configure.args = c(XML = '--with-xml-config=xml-config', RSPerl = "--with-modules='IO Fcntl'"))
3 Bioconductor的安装方法
> source("http://bioconductor.org/biocLite.R")
> biocLite("mypackage")

 

4 卸载package

remove.packages("mypackage")

 

5 查看R及其package的version

R version: version 或者 R.version

R package version:

 

6 更新包

update.packages( )  可以定期执行以下

 

7 使用别人安装的包

修改.bashrc文件,添加环境变量R的lib路径

export R_LIBS=/home/.../R/lib64/R/library

R中用.libPaths()函数查看lib路径,如果有多个lib,install.packages()默认是安装在第一个目录下

 

01

ubuntu服务器解决方案第七讲-perl安装模块

发现自己搞服务器遇到的困难还是蛮多的,所以记录了一下,给菜鸟们指个路。
ubuntu对生信菜鸟来说是最好用的linux服务器,没有之一,因为它有apt-get。

前面我简单写了一个perl的cpan安装模块,但是前些天突然发现有些perl模块在cpan里面找不到,所以又总结了一下不同的perl模块安装方法。

一 Linux/Unix下安装Perl模块有两种方法:手工安装和自动安装。

第一种方法是从CPAN上下载您需要的模块,手工编译、安装。第二种方法是使用CPAN模块自动完成下载、编译、安装的全过程。

A、手工安装的步骤:

从 CPAN(http://search.cpan.org/)下载了Net-Server模块0.97版的压缩文件Net-Server-0.97.tar.gz,假设放在/usr/local/src/下。

cd /usr/local/src

tar xvzf Net-Server-0.97.tar.gz

cd Net-Server-0.97

perl Makefile.PL

make test

如果测试结果报告“all test ok”,您就可以放心地安装编译好的模块了。

安装模块前,先要确保您对 perl5 安装目录有可写权限(通常以 su 命令获得),执行:

make install

现在,试试 DBI 模块吧。如果下面的命令没有给出任何输出,那就没问题。

$>perl -MNet::Server -e1

上述步骤适合于 Linux/Unix下绝大多数的Perl模块。可能还有少数模块的安装方法略有差别,所以最好先看看安装目录里的 README 或 INSTALL。

有的时候如果是build.pl的需要以下安装步骤:(需要Module::Build模块支持)

perl Build.PL

./Build

./Build test

./Build install

B、使用CPAN模块自动安装方法一:

安装前需要先联上网,并且您需要取得root权限。

perl -MCPAN -e shell

初次运行CPAN时需要做一些设置,如果您的机器是直接与因特网相联(拨号上网、专线,etc.),那么一路回车就行了,只需要在最后一步选一个离您最近的 CPAN 镜像站点。例如我选的是位于国内的http://www.cnblogs.com/itech/admin/ftp://www.perl87.cn/CPAN/ 。否则,如果您的机器位于防火墙之后,还需要设置ftp代理或http代理。下面是常用 cpan 命令。

cpan>help

cpan>m

cpan>install Net::Server

cpan>quit

C、使用CPAN模块自动安装方法二:

cpan -i 模块名

例如:cpan -i Net::Server

先下载tar.gz ...然後手动安装..default 安装到/usr/local/目录下..

然後修改/usr/bin/perl的symbolic link到/usr/local/bin/perl

30

Perl用cpan在linux上面安装模块

之所以要讲一下这个,是因为trinity这个软件居然需要perl的模块才能使用,所以我必须自己安装几个模块。

前提是要有root权限,否则只能自己下载perl模块自己解压安装了。

首次使用需要perl -MCPAN -e shell

以后只需要cpan即可

安装只有两个步骤,查询或者安装

查询:cpan[1]> d /模块名字或者部分名字/

查询结果中会给出所有含有模块名字或者部分名字的模块,选择您所需要的模块进行下载

 

下载安装:cpan[1]>  install  模块名字

Perl用cpan在linux上面安装模块313

install LWP  同时会自动安装很多依赖的模块,非常方便。

 

或者查找bioperl模块

Perl用cpan在linux上面安装模块329

install   CJFIELDS/Bundle-BioPerl-2.1.9.tar.gz

再输入上面这个命令,就可以安装啦

Running make install

Installing /usr/local/share/perl/5.18.2/Bundle/BioPerl.pm

Installing /usr/local/man/man3/Bundle::BioPerl.3pm

Appending installation info to /usr/local/lib/perl/5.18.2/perllocal.pod

CJFIELDS/Bundle-BioPerl-2.1.9.tar.gz

/usr/bin/make install  -- OK

 

 

之前运行Trinity是会报错的,说缺少一个模块,现在就可以用了

但是如果把Trinity那个程序拷贝到其它目录,还是会报错

Can't locate COMMON.pm in @INC (you may need to install the COMMON module) (@INC contains: /usr/local/bin/PerlLib /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at /usr/local/bin/Trinity line 14.

BEGIN failed--compilation aborted at /usr/local/bin/Trinity line 14.

因为Trinity这个软件本身放了几个perl模块在它自己的目录下面,不能把它们分开!