perl 模块的创建以及制定perl 模块的路径

Posted 庐州月光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl 模块的创建以及制定perl 模块的路径相关的知识,希望对你有一定的参考价值。

1) perl 模块的创建

perl 模块的后缀名为.pm, 其中的内容和一般的perl脚本相同, perl模块中通常放置可重用的函数以及变量,

比如创建一个fasta.pm,里面包含一个统计fasta序列中gc碱基个数的方法:

 1 #/usr/bin/perl 
 2 package fasta;
 3 use warnings;
 4 use strict;
 5 
 6 sub run {
 7     my $seq = shift;
 8     return $seq =~ tr /GCgc/GCgc/;
 9 
10 }    
11 
12 1;

然后写一个脚本检测一下该模块是否起作用:

#!/usr/bin/perl 
use fasta;

my $seq = qq{ATCGCTACGACG};

my $gc = fasta::run($seq);

print qq{$gc\n};

运行该脚本,输出结果为7, 可以看出结果确实是GC碱基的个数;

这个测试的脚本和fasta.pm 是放在同一个目录下的, 当脚本和模块放置在不同的目录时,

为了使用该模块, 就必须指定模块所在目录;

2) 指定perl模块目录

比如fasta.pm 所在目录为/home/xudl/perl

第一种方式: 设置环境变量PERL5LIB,

在~/.bashrc 中添加

export PERL5LIB=$PERL5LIB:/home/xudl/perl;

然后source ~/.bashrc 使这个新修改的环境变量生效即可;  

第二种方式, 在脚本中使用use lib

use  lib "/home/xudl/perl";

然后就可以使用

use fasta;

 

以上是关于perl 模块的创建以及制定perl 模块的路径的主要内容,如果未能解决你的问题,请参考以下文章

Perl 无法识别 root 用户的模块/模块路径

perl 处理文件路径的一些模块

[Perl] 模块搜索路径变量 @INC

我应该如何分发预构建的 perl 模块,以及我构建的 perl 版本是啥?

Perl教程 - 使用FindBin模块解决脚本中的路径问题

如何使用 Perl 中的 Win32::LongPath 模块来操作长路径名?