其实这个功能 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。
分享到:
相关推荐
2. **字符串操作**:Perl中的字符串可以进行拼接、查找、替换等操作,`.`是字符串连接符,`=~`用于正则表达式匹配和替换。 3. **正则表达式**:Perl内置了强大的正则表达式引擎,用于模式匹配和提取文本,如`\d`...
- **文件操作**:Perl内置了丰富的文件读写功能,如`open`和`close`函数。 - **网络编程**:支持TCP/IP等网络协议,可用于开发服务器端应用程序。 - **图形界面**:虽然不是Perl的传统强项,但仍有相应的库可以用来...
ActivePerl还包括了PPM(Perl Package Manager),一个用于查找、安装和管理Perl模块的工具,简化了对CPAN模块的访问。 ActivePerl-5.8.6.811是该软件的特定版本,发布于2006年。每个版本的Perl都可能包含错误修复...
4. **字符串操作**:Perl在处理字符串方面非常强大,内置了丰富的字符串函数,如`length`、`substr`、`index`、`sprintf`等,便于进行字符串的截取、查找、格式化等操作。 5. **正则表达式**:Perl是正则表达式的...
通过`package`定义类,`use base`进行继承,`@ISA`数组实现多重继承,`sub`定义方法,`my`关键字结合`our`实现封装。理解并熟练运用这些概念,你就能编写出更复杂、更具复用性的代码。 最后,Perl的错误处理和调试...
5. **正则表达式**:Perl内置了强大的正则表达式支持,可以方便地进行模式匹配和替换。例如,`\d`代表数字,`\w`代表字母数字字符,`^`和`$`表示字符串的开始和结束。 6. **控制结构**:Perl有标准的控制结构,如`...
例如,`cperl-mode`是Emacs内置的一种Perl编程模式,提供了语法高亮、自动缩进、括号匹配等功能,使得代码更易读写。此外,`flymake`可以集成到Emacs中,进行实时的语法检查,帮助开发者及时发现错误。 `CEDET`...
通过`package`定义类,`new`构造对象,`@ISA`数组实现继承。 8. **错误处理** - **警告和错误**: `warn`用于输出警告信息,`die`终止程序并输出错误信息。 - **异常处理**: 可以使用`eval`捕获异常。 9. **脚本...
在模块管理方面,PDK集成了ActivePerl的PPM(Perl Package Manager),使得安装、更新和管理Perl模块变得简单而直观。用户可以通过PPM轻松搜索、下载并安装所需的第三方模块,无需手动处理依赖关系,降低了开发过程...
- 字符串操作:PERL提供了丰富的内建函数用于字符串的拼接、查找、替换等。 - 正则表达式:PERL的正则表达式功能强大,是文本处理的核心工具。 2. **流程控制** - 条件语句:如if/elsif/else和switch/case结构,...
- 函数:内置函数和自定义函数的使用。 4. **文件操作** - 文件打开与关闭:open()和close()函数。 - 文件读写:readline()、print()和seek()等。 - 文件处理:文件指针、文件测试操作符(-f, -d, -e等)。 5....
2. **字符串操作**:Perl内置了丰富的字符串操作函数,如`length`用于获取字符串长度,`uc`用于将字符串转为大写,`lc`用于转为小写,`index`用于查找子字符串位置等。 3. **流程控制**:Perl支持if-else条件语句、...
Perl通过包(package)实现命名空间的概念,确保代码的清晰和独立。 #### 1.4 包 包是Perl中定义命名空间的主要方式。通过使用`package`关键字,可以创建一个新的命名空间,并在其中定义子程序和变量。 #### 1.5 ...
Perl的强大之处在于其灵活性和表达能力,它融合了C、awk、sed等语言的特点,提供了丰富的内置函数和正则表达式支持。 本书的第四版将涵盖以下关键知识点: 1. **基础语法**:包括变量声明、数据类型(如标量、数组...
4. **正则表达式**:Perl是正则表达式的大师,内置了强大的正则引擎,支持模式匹配、替换和提取等操作。 5. **流程控制**:Perl有标准的流程控制结构,如 `if...else` 条件语句,`for` 和 `while` 循环,以及 `...
7. **面向对象编程**:Perl 支持面向对象编程,通过 `package` 关键字定义类,`sub` 定义方法,`my` 关键字创建私有变量,`->` 操作符调用方法。 8. **错误处理和调试**:Perl 使用 `die` 和 `warn` 函数来抛出错误...
- **字符串操作**:Perl内置了丰富的字符串操作函数,如concatenation(连接)、substitution(替换)、index(查找子串位置)等。 - **正则表达式**:Perl的正则表达式功能强大,可用于模式匹配、替换和提取文本...
- Perl是正则表达式的故乡,它内置了强大的正则匹配和替换功能,如`=~`操作符用于绑定变量和正则表达式,`\b`表示单词边界,`\d`代表数字等。 5. **文件操作** - Perl提供了简洁的文件I/O接口,如`open`打开文件...
例如,`PROJECT()`命令定义项目名称,`ADD_EXECUTABLE()`或`ADD_LIBRARY()`添加可执行文件或库,`FIND_PACKAGE()`查找依赖的外部库,以及`INCLUDE_DIRECTORIES()`指定头文件路径等。 2. **变量和选项**:CMake提供...
2. **字符串和数组操作**:Perl对字符串和数组的处理非常灵活,可以方便地进行切片、拼接、查找、替换等操作。例如,`split`函数可以将字符串分割成数组,`join`函数可以将数组元素连接成字符串。 3. **正则表达式*...