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: Sort elements by frequency
http://www.geeksforgeeks.org/sort-elements-by-frequency-set-2/ #include <iostream> #include &l ...
- vi使用方法详细介绍
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...
- sass表达式前后出现空格
最近发现一个问题,当我用mixin将px转rem时: @mixin pxToRem($remVal: 1){ font-size: ($remVal/75)rem; }.a { @include px ...
- 使用Pydoc生成文档
Python中本身带有很多实用的工具,如pydoc.pydoc模块主要用来从Python模块中提取信息并生成文档. 使用方法 在Windows和Linux下的使用方法有些区别. Windows pyt ...
- 顺序表的静态存储(C语言实现)
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构. 1.顺序表的结构体声明 #define MAX_SIZE 5 //定义数组的大小 typed ...
- QT下的QProcess调用外部程序
头文件widget.h #ifndef WIDGET_H #define WIDGET_H #include <QWidget> namespace Ui { class Widget; ...
- POJ 1270 Following Orders(拓扑排序)
题意: 给两行字符串,第一行为一组变量,第二行时一组约束(每个约束包含两个变量,x y 表示 x <y).输出满足约束的所有字符串序列. 思路:拓扑排序 + 深度优先搜索(DFS算法) 课本代码 ...
- php将一个二维数组按照某个字段值合并成一维数组,如果有重复则将重复的合并成二维数组
版权声明:本文为博主原创文章,未经博主允许不得转载. 最近工作中碰到一个问题,用PHP将一个二维数组按照二维数组中的各个项中的某个特定字段值合并成一维数组,如果有重复则将重复的合并成二维数组,生成的二 ...
- PHP获取指定日期是星期几的实现方法
这篇文章主要介绍了PHP获取指定日期是星期几的实现方法,涉及php针对日期的读取.判断与字符串.数组相关运算操作技巧,需要的朋友可以参考下 本文实例讲述了PHP获取指定日期是星期几的实现方法.分享给大 ...
- python中zip()函数基本用法
zip()函数接受一系列可迭代对象作为参数,将不同对象中相对应的元素打包成一个元组(tuple),返回由这些元组组成的list列表,如果传入的参数的长度不等,则返回的list列表的长度和传入参数中 ...