`
forever8tf
  • 浏览: 99014 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

perl 实现查找内置 package

阅读更多

其实这个功能 perldoc 与 cpan 都有,只不过学习perl 想练练手。

程序的功能是实现使用 正则表达式 查找 perl 中的内置 package,然后输出匹配的结果;如输入参数为空,则提示无参数;如输入参数中含有  /all 则输出所有的 package。

代码如下:

#!/usr/bin/perl
use strict;
use utf8;
use 5.010;

use Data::Dumper;
use Module::CoreList;
use List::Util qw /first max/;

sub checkArgs {
	my (@args) = @_;
	my $happy = first {/\/all/} @args;
	if($happy){
		@args = undef;
	}
	@args;
}

sub lengthstr {
	my (@args) = @_;
	foreach (@args){
		$_ = length $_;
	}
	@args;
}

my %modules = %{$Module::CoreList::version{5.014}};
my $maxNum = max lengthstr keys %modules;

foreach my $key (sort keys %modules){
	@ARGV = checkArgs @ARGV;
	if(!@ARGV){
		say "No arguments.";
		last;
	}
	chomp($key);
	chomp(my $value = $modules{$key});

	foreach my $temp (@ARGV){
		if($key =~ /(.*($temp).*)/){
			printf "%${maxNum}s\t%s\n", $key, $value;
		}
	}

}

#print Dumper(@ARGV);

 使用时,运用如下方式;

./pModules.pl  [pattern] | all 
 可以输入若干个  pattern ,但只要有一个 /all ,则会输出所有的 package。
分享到:
评论

相关推荐

    神奇的perl例子perl例子100个

    2. **字符串操作**:Perl中的字符串可以进行拼接、查找、替换等操作,`.`是字符串连接符,`=~`用于正则表达式匹配和替换。 3. **正则表达式**:Perl内置了强大的正则表达式引擎,用于模式匹配和提取文本,如`\d`...

    Perl大骆驼书

    - **文件操作**:Perl内置了丰富的文件读写功能,如`open`和`close`函数。 - **网络编程**:支持TCP/IP等网络协议,可用于开发服务器端应用程序。 - **图形界面**:虽然不是Perl的传统强项,但仍有相应的库可以用来...

    ActivePerl-5.8.6.811-MSWin32-x86-122208.msi.7z

    ActivePerl还包括了PPM(Perl Package Manager),一个用于查找、安装和管理Perl模块的工具,简化了对CPAN模块的访问。 ActivePerl-5.8.6.811是该软件的特定版本,发布于2006年。每个版本的Perl都可能包含错误修复...

    Programming Perl 第三版大骆驼书 中文版

    4. **字符串操作**:Perl在处理字符串方面非常强大,内置了丰富的字符串函数,如`length`、`substr`、`index`、`sprintf`等,便于进行字符串的截取、查找、格式化等操作。 5. **正则表达式**:Perl是正则表达式的...

    perl 初级教程及高级技术内幕

    通过`package`定义类,`use base`进行继承,`@ISA`数组实现多重继承,`sub`定义方法,`my`关键字结合`our`实现封装。理解并熟练运用这些概念,你就能编写出更复杂、更具复用性的代码。 最后,Perl的错误处理和调试...

    Perl 語言入門.rar

    5. **正则表达式**:Perl内置了强大的正则表达式支持,可以方便地进行模式匹配和替换。例如,`\d`代表数字,`\w`代表字母数字字符,`^`和`$`表示字符串的开始和结束。 6. **控制结构**:Perl有标准的控制结构,如`...

    emacs 编程相关perl

    例如,`cperl-mode`是Emacs内置的一种Perl编程模式,提供了语法高亮、自动缩进、括号匹配等功能,使得代码更易读写。此外,`flymake`可以集成到Emacs中,进行实时的语法检查,帮助开发者及时发现错误。 `CEDET`...

    Perl编程起步 perl 教程

    通过`package`定义类,`new`构造对象,`@ISA`数组实现继承。 8. **错误处理** - **警告和错误**: `warn`用于输出警告信息,`die`终止程序并输出错误信息。 - **异常处理**: 可以使用`eval`捕获异常。 9. **脚本...

    ActiveState.Perl.Dev.Kit.Pro.v8.0

    在模块管理方面,PDK集成了ActivePerl的PPM(Perl Package Manager),使得安装、更新和管理Perl模块变得简单而直观。用户可以通过PPM轻松搜索、下载并安装所需的第三方模块,无需手动处理依赖关系,降低了开发过程...

    PERL编程思想 提升

    - 字符串操作:PERL提供了丰富的内建函数用于字符串的拼接、查找、替换等。 - 正则表达式:PERL的正则表达式功能强大,是文本处理的核心工具。 2. **流程控制** - 条件语句:如if/elsif/else和switch/case结构,...

    Perl 入门及高级编程

    - 函数:内置函数和自定义函数的使用。 4. **文件操作** - 文件打开与关闭:open()和close()函数。 - 文件读写:readline()、print()和seek()等。 - 文件处理:文件指针、文件测试操作符(-f, -d, -e等)。 5....

    PERL 编程24学时教程(PDF)

    2. **字符串操作**:Perl内置了丰富的字符串操作函数,如`length`用于获取字符串长度,`uc`用于将字符串转为大写,`lc`用于转为小写,`index`用于查找子字符串位置等。 3. **流程控制**:Perl支持if-else条件语句、...

    Mastering_Perl_for_Bioinformatics

    Perl通过包(package)实现命名空间的概念,确保代码的清晰和独立。 #### 1.4 包 包是Perl中定义命名空间的主要方式。通过使用`package`关键字,可以创建一个新的命名空间,并在其中定义子程序和变量。 #### 1.5 ...

    Perl语言入门(第四版)

    Perl的强大之处在于其灵活性和表达能力,它融合了C、awk、sed等语言的特点,提供了丰富的内置函数和正则表达式支持。 本书的第四版将涵盖以下关键知识点: 1. **基础语法**:包括变量声明、数据类型(如标量、数组...

    Perl document

    4. **正则表达式**:Perl是正则表达式的大师,内置了强大的正则引擎,支持模式匹配、替换和提取等操作。 5. **流程控制**:Perl有标准的流程控制结构,如 `if...else` 条件语句,`for` 和 `while` 循环,以及 `...

    Perl 语言教程,很好用的文本处理语言

    7. **面向对象编程**:Perl 支持面向对象编程,通过 `package` 关键字定义类,`sub` 定义方法,`my` 关键字创建私有变量,`->` 操作符调用方法。 8. **错误处理和调试**:Perl 使用 `die` 和 `warn` 函数来抛出错误...

    ThinkinPerl

    - **字符串操作**:Perl内置了丰富的字符串操作函数,如concatenation(连接)、substitution(替换)、index(查找子串位置)等。 - **正则表达式**:Perl的正则表达式功能强大,可用于模式匹配、替换和提取文本...

    perlTutorials:PERL 的各种特性已经在这个项目中进行了解释

    - Perl是正则表达式的故乡,它内置了强大的正则匹配和替换功能,如`=~`操作符用于绑定变量和正则表达式,`\b`表示单词边界,`\d`代表数字等。 5. **文件操作** - Perl提供了简洁的文件I/O接口,如`open`打开文件...

    cmake编译工具

    例如,`PROJECT()`命令定义项目名称,`ADD_EXECUTABLE()`或`ADD_LIBRARY()`添加可执行文件或库,`FIND_PACKAGE()`查找依赖的外部库,以及`INCLUDE_DIRECTORIES()`指定头文件路径等。 2. **变量和选项**:CMake提供...

    笔记

    2. **字符串和数组操作**:Perl对字符串和数组的处理非常灵活,可以方便地进行切片、拼接、查找、替换等操作。例如,`split`函数可以将字符串分割成数组,`join`函数可以将数组元素连接成字符串。 3. **正则表达式*...

Global site tag (gtag.js) - Google Analytics