参考博客:http://www.cnblogs.com/xudongliang/tag/perl/

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

(1)创建一个Myfun.pm模块。

#/usr/bin/perl

package Myfun;

use warnings;

use strict;

sub sum($$){
my ($a,$b)=@_;
my $sum = $a+$b;
return $sum;
}
1;

(2)指定perl模块目录,运用Myfun.pm模块,

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

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

在~/.bashrc 中添加      export PERL5LIB=$PERL5LIB:/home/xudl/perl;             source ~/.bashrc

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

use  lib "/home/xudl/perl";然后就可以使用   use Myfun ;


#!/usr/bin/perl

use  lib "/home/xudl/perl";

use Myfun;

my $aa= 12;my$bb=14;

my $bb = Myfun::sum($a,$b);

print qq{$bb\n};

Exporter模块在创建模块时用到

require Exporter;

our @ISA =qw( Exporter);

our @Export = qw(fun1 fun2)  #默认输出

our @Export_OK = qw(fun3 fun4)  #要调用才能输出

2、perl 中的引用

使用 \ 符号, 声明一个引用外,还可以声明一个匿名引用, 数组的引用使用 [  ] 操作符, 哈希的引用使用 {  } 操作符;

(1)声明引用

my @array     = (1, 2, 3);
my $array_ref = \@array; my $array_ref = [1, 2, 3, 4];
my %hash     = (1, 2, 3, 4);
my $hash_ref = \%hash; my $hash_ref = {1, 2, 3, 4} (2)通过引用访问值
print $array_ref->[0];    #数组的引用, 是->[ ] 中括号, 加上对应的下标.     匿名数组一样

print $array_ref->{1};    #哈希的引用,通过->{} 大括号, 加上对应的key      匿名哈希一样
(3)解引用  数组的引用通过 @ 符号 , 哈希的引用通过 % 符号;
  my @array_new = @{$array_ref};
  my %hash_new = %{$hash_ref};

3、perl数组与散列的嵌套

总公司下ABCDE各分公司人员
数组的散列:@{$hash{A}}
数组的散列的引用:@{$hash->{A}}
总公司下ABCDE各分公司人员以及员工的收入
散列的散列:%{$hash{A}}   
散列的散列的引用:%{$hash->{A}}

4、perl模块查询

模块路径:perl -V ;   perl -le 'print "@INC"'   或者   perl -e 'print join("\n",@INC)'

模块帮助:perldoc List::Util;

某个模块安装路径:perldoc -l List::Util;

查看所用在路径中的模块:find ·perl -le 'print "@INC"'· -name *.pm

模块安装与否:perl  -M List::Util -e ''


6、perl创建模块(Exporter)及路径 引用 嵌套 查询模块的更多相关文章

  1. python import模块的搜索路径

    当在py代码中import所依赖的模块时, python是从哪里找到这些模块呢,即模块的搜索路径是啥? 默认情况下,Python解释器会搜索当前目录.所有已安装的内置模块和第三方模块,搜索路径存放在s ...

  2. 在Python中使用glob模块查找文件路径的方法

    在Python中使用glob模块查找文件路径的方法 glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.查找文件只用到三个匹配符: ...

  3. 创建在类路径资源[applicationcontext]中定义名为“工厂”的bean时出错。:在设置bean属性“dataSource”时,无法解析对bean“dataSource”的引用;嵌套异常是org.springframe .beans.factory。BeanCreationException:创建名为“数据源”的bean时出错,该名称是在类路径资源[applicationcontext

    控制台报错: 创建在类路径资源[applicationcontext]中定义名为“工厂”的bean时出错.:在设置bean属性“dataSource”时,无法解析对bean“dataSource”的引 ...

  4. perl 查看某个模块的安装路径

    perldoc 命令可以查看某个模块的安装路径 命令: perldoc -l Bio::Seq 返回值如下: /usr/local/share/perl5/Bio/Seq.pm

  5. perl 第十四章 Perl5的包和模块

    第十四章 Perl5的包和模块 by flamephoenix 一.require函数  1.require函数和子程序库  2.用require指定Perl版本二.包  1.包的定义  2.在包间切 ...

  6. 模块的概念、模块的导入方式【IMPORT 模块名、FROM 模块 IMOPRT 功能】、模块的搜索路径、链式导入&循环导入

    今日内容 1. 模块:模块的概念 2.导入的方式:import  from import 3. 环境变量:sys.path 4. 导入模块的顺序 5. 循环导入:模块间互相导入 模块 常见的四种模块: ...

  7. NodeJS——模块全局安装路径配置以及关于supervisor的问题解释

    下载安装NodeJS后,在自己选择的路径下会有如下的文件: 默认情况下NodeJS安装会同时安装npm(模块管理器:用于管理用户require的模块,有全局和本地两种). 注:全局:执行npm  in ...

  8. 关于python中模块的import路径

    前两天被一个同事问了一个python的问题: 为什么一个目录里的python文件引用不要另一个兄弟目录的python文件,但是这两个目录的父母录运行时是可以引用到了.当时感觉一直是模块和包的机制问题, ...

  9. winform 发布应用程序 提示 “未能注册模块(程序路径)\ieframe.dll”

    程序安装的时候出现未能注册模块(程序路径)\ieframe.dll提示 这种情况的出现,是因为引用的shdocvw.dll,目前发现了一个折中的解决方法,在安装程序里面,可以看到ieframe.dll ...

随机推荐

  1. MySQL 及 SQL 注入与防范方法

    所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的, ...

  2. Logstash添加Protobuf解析插件

    logstash收集日志时,日志部分是由google的protobuf工具打印的,直接利用json解析会造成部分无法解析的问题 搜索后发现有个logstash的protobuf插件 在logstash ...

  3. Hive报错 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

    报错信息如下 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyn ...

  4. Ubuntu忘记用户密码解决方法--Authentication token manipulation error

    1.重启系统,按住shift键进入grub菜单: 2.选择recovery mode恢复模式: 3.在recovery menu中选择root drop to root shell prompt: 4 ...

  5. spring boot项目启动报(No session repository could be auto-configured, check your configuration (session store type is 'null'))

    找到项目的application配置文件,增加 spring.session.store-type=none,重新启动问题解决 注:因为项目未使用redis管理session,可以如上设置,如果想使用 ...

  6. linux学习系列一

    1. 基本命令(注意参数的大小写) 学习linux如果使用的是windows 建议使用一个很好用的工具git,下载安装即可使用linux下的命令来操作windows 1.1目录及文件 注意/ 有表示根 ...

  7. PHP中有多态么

    PHP中有多态么 一.总结 一句话总结:封装是类的构建过程,php具有:php也具有继承的特性.唯独这个多态,php体现的十分模糊.原因是php是弱类型语言. php不具有像java那种清晰的多态,不 ...

  8. 命令行执行大sql文件

    mysql -h localhost -u root -p 123456 < F:/hello world/niuzi.sql

  9. css中单位px和em,rem的区别

    PX:PX实际上就是像素,用PX设置字体大小时,比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,如果改变了浏览器的缩放,这时会使用我们的Web页面布局被打破.这样 ...

  10. python 链接MS SQL

    cnxn = pyodbc.connect(driver='{SQL Server}', host=server, database=db1, trusted_connection=tcon, use ...