Linux 操作系统初学者的10个快速入门的 Perl 编程技巧

举报
Tiamo_T 发表于 2022/01/21 08:17:13 2022/01/21
【摘要】 如果您是偶尔编写 perl 代码的 Linux 系统管理员(或)想要学习 perl 程序语言的开发人员,本文中讲解将为您提供快速入门的10 个基本perl 编程技巧。

如果您是偶尔编写 perl 代码的 Linux 系统管理员(或)想要学习 perl 程序语言的开发人员,本文中讲解将为您提供快速入门的10 个基本perl 编程技巧


1. 从 Unix 命令行列出所有已安装的 Perl 模块

获取所有已安装 perl 模块的列表,如下所示。

$ perl -MFile::Find=find -MFile::Spec::Functions -Tlw -e 'find { Want => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @ INC' 

/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/Filter.pm 
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML /LinkExtor.pm 
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/PullParser.pm 
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /HTML/Parser.pm 
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/TokeParser.pm 
.....

在上面的例子中,

  • File::FindFile::Spec::Functions模块用于列出所有已安装的模块。
  • -M 选项加载模块。它在执行脚本之前执行use 模块
  • -T 选项启用污点检查,它指示 perl 跟踪来自用户的数据并避免对其进行任何不安全的操作。在这里,此选项用于避免从 @INC 变量中获取当前目录名称并递归地列出目录中可用的 .pm 文件。
  • -l 选项在输出中启用自动换行处理。打印语句将在每行末尾添加新的行分隔符 (\n)。
  • -w 选项打印任何警告消息。
  • -e 选项指示以下字符串将被解释为 perl 脚本(即命令序列)。

2. 从 perl 脚本中列出所有已安装的 Perl 模块(使用 ExtUtils::Installed 包)

使用以下 perl 代码片段获取已安装 perl 模块的列表。

my $Inst = ExtUtils::Installed->new();
my @Modules = $Inst->modules();
print "Current List of Installed PERL Modules:\n\n";
foreach my $mod(@Modules){
print "$mod\n";
}

注意:模块 ExtUtils::Installed 没有预安装 perl 程序。所以你应该从cpan安装它。

3. 使用 Perldoc 命令列出 Perl 模块

perldoc perlmodlib列出了 perl 程序预装的所有模块。


$ perldoc perlmodlib

       Attribute::Handlers Simpler definition of attribute handlers
       AutoLoader  Load subroutines only on demand
       .........

注意:您还可以使用“perldoc perllocal”命令来识别已安装的其他 perl 模块。

$ perldoc perllocal

perldoc perllocal 命令列出系统中安装的所有可选模块以及以下信息:

  • 安装日期
  • perl 模块的安装目录位置
  • Perl 模块版本号
  • 等等。,

4. 从 Unix 命令行查看 Perl 文档

您可以使用 perldoc 或 man 命令来获取有关特定 perl 模块的帮助,如下所示。

$ perldoc Regexp::Common

(or)

$ man Regexp::Common

如果 perl 文档不够,请使用 perldoc 选项 -m,查看指定 perl 模块的源代码和未格式化的 pod 文档。

$ perldoc -m Regexp::Common

要查看有关特定 perl 函数的文档,请使用选项 -f,如下所示。

$ perldoc -f splice

5. 查看在线 Perl 文档(或下载以供离线使用)

Perl 编程文档中提供了许多优秀的perl 教程

从该网站,您还可以下载 HTML 或 PDF 版本的 perl 文档以供离线查看。

  • 完整版(包含 HTML 和 PDF 文件) 
  • Lite 版本(仅包含 HTML 文件)

6. 使用 Podbrowser 阅读 Perl 文档

下载podbrowser。您可以从 podbrowser 直观地浏览已安装的 perl 模块、函数和 perl 文档。从他们的网站:

PodBrowser is a documentation browser for Perl.
You can view, search and print documentation for Perl's
builtin functions, its "perldoc" pages, pragmatic modules
and the default and user-installed modules.

7.手动修改CPAN模块配置

要从 Linux 命令行安装 perl 模块,请使用 CPAN。我们之前讨论了如何安装 perl 模块——手动和使用 CPAN 命令。

第一次使用 Perl 模块 CPAN ( perl -MCPAN ) 时,会执行一个脚本来配置几个选项。例如,它配置 tar、gzip 和 unzip 文件的位置、构建目录的缓存大小、源文件位置等,

要手动重新配置 CPAN 模块配置文件,您可以编辑以下文件之一。

  • ~/.cpan/CPAN/MyConfig.pm – 用户特定的 Perl CPAN 配置文件
  • /etc/perl/CPAN/Config.pm – 系统范围的 Perl CPAN 配置文件存储在 perl 模块目录树的某个位置。
$ vim ~/.cpan/CPAN/MyConfig.pm

(and / or)

$ vim /etc/perl/CPAN/Config.pm

8. 以交互方式修改 CPAN 模块配置

如下所示启动 cpan shell 并执行o conf init,它将询问“您准备好手动配置了吗”,提供您的选项(是/否)以继续。这将列出所有配置参数及其值。

$ perl -MCPAN -e shell

cpan> o conf init

cpan> o conf

9. 验证是否安装了 Perl 模块

如果您想知道是否安装了 perl 模块(例如 Regexp::Common),请执行以下命令。如果您得到“1”作为输出,则安装了指定的 perl 模块。如果没有,您将收到如下所示的错误消息。

$ perl -MRegexp::Common -le 'print 1'

Can't locate Regexp/Common.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .).

注意:您还可以使用 perldoc 或 man 命令检查是否安装了 perl 模块。如果安装了 perl 模块,模块的手册页将成功打开。如果没有,它会说“没有找到这个模块的手册/文档”

$ perldoc Regexp::Common 

$ man Regexp::Common

10.列出Perl模块所在的目录

Perl数组@INC包含的位置列表的“做EXPR”,“需要”,或“使用”结构看他们的库文件。以下单行显示了@INC perl 数组的内容:

$ perl -e 'foreach $folder (@INC) { print "$folder\n";}'
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。