6、perl创建模块(Exporter)及路径 引用 嵌套 查询模块
参考博客: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)及路径 引用 嵌套 查询模块的更多相关文章
- python import模块的搜索路径
当在py代码中import所依赖的模块时, python是从哪里找到这些模块呢,即模块的搜索路径是啥? 默认情况下,Python解释器会搜索当前目录.所有已安装的内置模块和第三方模块,搜索路径存放在s ...
- 在Python中使用glob模块查找文件路径的方法
在Python中使用glob模块查找文件路径的方法 glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.查找文件只用到三个匹配符: ...
- 创建在类路径资源[applicationcontext]中定义名为“工厂”的bean时出错。:在设置bean属性“dataSource”时,无法解析对bean“dataSource”的引用;嵌套异常是org.springframe .beans.factory。BeanCreationException:创建名为“数据源”的bean时出错,该名称是在类路径资源[applicationcontext
控制台报错: 创建在类路径资源[applicationcontext]中定义名为“工厂”的bean时出错.:在设置bean属性“dataSource”时,无法解析对bean“dataSource”的引 ...
- perl 查看某个模块的安装路径
perldoc 命令可以查看某个模块的安装路径 命令: perldoc -l Bio::Seq 返回值如下: /usr/local/share/perl5/Bio/Seq.pm
- perl 第十四章 Perl5的包和模块
第十四章 Perl5的包和模块 by flamephoenix 一.require函数 1.require函数和子程序库 2.用require指定Perl版本二.包 1.包的定义 2.在包间切 ...
- 模块的概念、模块的导入方式【IMPORT 模块名、FROM 模块 IMOPRT 功能】、模块的搜索路径、链式导入&循环导入
今日内容 1. 模块:模块的概念 2.导入的方式:import from import 3. 环境变量:sys.path 4. 导入模块的顺序 5. 循环导入:模块间互相导入 模块 常见的四种模块: ...
- NodeJS——模块全局安装路径配置以及关于supervisor的问题解释
下载安装NodeJS后,在自己选择的路径下会有如下的文件: 默认情况下NodeJS安装会同时安装npm(模块管理器:用于管理用户require的模块,有全局和本地两种). 注:全局:执行npm in ...
- 关于python中模块的import路径
前两天被一个同事问了一个python的问题: 为什么一个目录里的python文件引用不要另一个兄弟目录的python文件,但是这两个目录的父母录运行时是可以引用到了.当时感觉一直是模块和包的机制问题, ...
- winform 发布应用程序 提示 “未能注册模块(程序路径)\ieframe.dll”
程序安装的时候出现未能注册模块(程序路径)\ieframe.dll提示 这种情况的出现,是因为引用的shdocvw.dll,目前发现了一个折中的解决方法,在安装程序里面,可以看到ieframe.dll ...
随机推荐
- Data Structure Array: Longest Monotonically Increasing Subsequence Size
http://www.geeksforgeeks.org/longest-monotonically-increasing-subsequence-size-n-log-n/ #include < ...
- c#命名规则参考
命名规则参考:1.从组件类型名中移去T前缀.例如TButton变成Button.2.除了第一个元音,删去所有元音字母.例如,Button变成bttn,Edit变成edt.3.压缩双字母.例如,bttn ...
- Python 3 常用模块之 一
Python 3 模块 一. time模块 时间模块 在Python中,通常有这几种方式来表示时间: 1.1 时间戳(timestamp): 通常来说,时间戳表示的是从1970年1月1日00:00: ...
- nginx rewrite标签配置以及用户认证配置
一.nginx rewrite标签 rewrite 实现URL的改写主要是实现伪静态 1. rewrite指令语法 指令语法:rewrite regex replacement[flag] 默认值 ...
- vim 的配置文件(.vimrc)
linux 下面的root的主目录中新建.vimrc配置文件,配置文件注析方式为“,不是#: 如: "显示行号 set number set ruler
- Linux Glibc库严重安全漏洞修复方案通知(腾讯开发者社区)
如何查看当前glibc的版本号? rpm -aq | grep glibc 尊敬的用户: 您好!2015年1月28日, 腾讯云安全情报监测到LinuxGlibc库存在一处严重安全漏洞,可以 ...
- 大话设计模式--策略模式 strategy -- C++实现实例
1. 策略模式: 它定义了算法家族, 分别封装起来,使他们之间可以相互替换,此模式让算法变化, 不会影响到使用算法的客户. 用相同的方法调用不同的算法,减少各种算法类与使用算法类之间的耦合. 实例中策 ...
- POJ 1639 Picnic Planning:最小度限制生成树
题目链接:http://poj.org/problem?id=1639 题意: 给你一个无向图,n个节点,m条边,每条边有边权. 让你求一棵最小生成树,同时保证1号节点的度数<=k. 题解: 最 ...
- JS获取ListBox所有项
JS代码: var listbox = document.getElementById("<%=lbCustom.ClientID %>"); var values = ...
- Eclipse_插件_01_tomcat插件的安装
1.Eclipse的tomcat插件下载地址: (1)https://sourceforge.net/projects/tomcatplugin/files/updatesite/plugins/ ( ...