Perl
来自 维基百科
- Perl 是一系列高级、通用、解释型、动态编程语言。该系列语言包括 Perl 5 和 Raku(前身为 Perl 6)。
- Perl 语言借鉴了其他编程语言的特性,包括 C、shell 脚本 (sh)、AWK 和 sed。它们提供了强大的文本处理功能,没有许多现代 Unix 命令行工具中任意数据长度的限制,从而方便了文本文件的轻松操作。Perl 5 在 1990 年代后期作为 CGI 脚本语言获得了广泛的普及,部分原因是其当时无与伦比的正则表达式和字符串解析能力。
安装
命令
Perl 语言解释器
$ perl
Perl 错误报告
$ perlbug
在 POD 格式中查找 Perl 文档
$ perldoc
向 Perl 作者和维护者发送感谢消息
$ perlthanks
软件包管理
Comprehensive Perl Archive Network (CPAN) 是一个存储库,其中包含超过 250,000 个软件模块以及由超过 12,000 名贡献者使用 Perl 编程语言编写的配套文档。
CPAN 也是一个 Perl 模块的名称,CPAN.pm,它用于从 CPAN 存档下载和安装 Perl 软件。
pacman 和 AUR
许多流行的 CPAN 模块在 Arch 存储库中以 软件包 的形式提供。AUR 中还提供了更多模块 软件包。
CPAN.pm
CPAN.pm 模块包含在 Perl 中。它可以从 shell 或 Perl 脚本中交互使用。
配置 cpan
首次使用前,需要配置模块。这可以通过 shell 交互式完成(省略了一些输出)
$ cpan
CPAN.pm requires configuration, but most of it can be done automatically. If you answer 'no' below, you will enter an interactive dialog for each configuration option instead. Would you like to configure as much as possible automatically? [yes]
自动化配置将适合大多数用户。回答“是”,配置将继续。
To install modules, you need to configure a local Perl library directory or escalate your privileges. CPAN can help you by bootstrapping the local::lib module or by configuring itself to use 'sudo' (if available). You may also resolve this problem manually if you need to customize your setup. What approach do you want? (Choose 'local::lib', 'sudo' or 'manual') [local::lib]
如果您希望 cpan
将模块安装在您的主目录中,请选择 local::lib
。要将它们系统范围安装,请选择 sudo
。选择 sudo
配置结束。
Autoconfiguration complete. commit: wrote '/home/username/.cpan/CPAN/MyConfig.pm'
选择 local::lib
选项将导致安装额外的模块。
选择不使用自动化配置允许用户在 shell 中交互式设置 cpan
选项。下表显示了一些选项名称,以及简要说明和默认值。在配置期间,将显示每个选项的更详细信息。
名称 | 描述 | 默认值 |
---|---|---|
cpan_home | CPAN 构建和缓存目录 | $HOME/.cpan |
keep_source_where | 下载目标目录 | $HOME/.cpan/sources |
build_dir | 构建过程目录 | $HOME/.cpan/build |
prefs_dir | 可自定义模块选项目录 | $HOME/.cpan/prefs |
build_cache | 构建目录的缓存大小 | 100MB |
cleanup_after_install | 成功安装后删除构建目录 | 否 |
shell | 首选 shell | /bin/bash |
halt_on_failure | 失败时停止 | 否 |
colorize_output | 打开彩色输出 | 否 |
histfile | 历史文件位置 | $HOME/.cpan/histfile |
histsize | 历史文件大小 | 100 行 |
配置文件 $HOME/.cpan/CPAN/MyConfig.pm 可以使用您选择的文本编辑器进行编辑。
使用示例
要简单地安装模块,请将它们作为参数传递给 cpan
(多个模块名称用空格分隔)。
$ cpan Acme::MetaSyntactic
以下示例均在 cpan
交互式 shell 中,通过以下方式启动:
$ cpan
显示模块信息
cpan[1]> m Acme::MetaSyntactic
Reading '/home/username/.cpan/Metadata' Database was generated on Fri, 08 Dec 2017 02:17:03 GMT Module id = Acme::MetaSyntactic CPAN_USERID BOOK (Philippe Bruhat (BooK) <book@cpan.org>) CPAN_VERSION 1.014 CPAN_FILE B/BO/BOOK/Acme-MetaSyntactic-1.014.tar.gz INST_FILE (not installed)
查看模块 README
cpan[2]> readme Acme::MetaSyntactic
Acme::MetaSyntactic - Themed metasyntactic variables DESCRIPTION When writing code examples, it's always easy at the beginning: my $foo = "bar"; $foo .= "baz"; # barbaz ...
安装模块
cpan[3]> install Acme::MetaSyntactic
组件绑定
以下小部件工具包绑定可用
- gtk2-perl — GTK2 绑定
- perl-gtk3 — GTK3 绑定
- Perl/TK — Tk 绑定
- wxPerl — wxWidgets 绑定
- http://www.wxperl.it/ || perl-wxAUR
- Prima — 一个 Perl 多平台图形工具包
要在 Perl 中使用这些,您可能需要安装相关的窗口小部件工具包。
在 JetBrains IDE 中开发
如果您正在使用 JetBrains IDE,例如 IntelliJ Idea,请安装 perl-bundle-camelcadeAUR。然后安装 Perl 插件。然后转到 Settings > Languages & Frameworks > Perl5。在 Perl 5 Interpreter 字段中选择 Add System Perl。现在您可以为您的项目创建运行/调试配置并开始调试。
技巧与诀窍
改进的模块管理
cpanminus
cpanminus 扩展了模块管理,旨在实现零配置并与 local::db
集成。
cpanminus 文档 提供了示例。
ucpan
ucpan 是一个不错的、完全自动化的 CPAN 模块更新程序(特别是安装在 local-lib 中的模块)。要安装,请使用
cpan App::ucpan
Bundle::CPAN
安装 Bundle::CPAN 发行版将为 CPAN.pm 添加许多不错的功能。
$ cpan Bundle::CPAN
重新运行 cpan 配置
$ cpan cpan[1]> o conf init
创建新模块
module-starter
Module::Starter 帮助您创建新模块... 安装
cpanm Module::Starter
用法
module-starter --module=App::foobar --author="My name here" --email=my@email.here --mb
这将创建您的模块树...
--mb
创建将使用 Module::Build 的模块。下一部分假设您正在使用此模块。要添加依赖项,请将 module_name => version_or_0
放在 Build.PL
文件中的 $builder -> requires
中
要为您的项目安装所需的依赖项,请在 App-foobar
文件夹中运行
cpanm --installdeps .
要跳过 git 文件夹,请在 $builder
下添加
add_to_manifest_skip => [ '.git' ],
添加脚本可以像这样完成
mkdir bin touch bin/foobar
要运行此脚本
perl -Ilib bin/foobar
您可以在此处更改项目版本:lib/App/foobar.pm
要安装您的模块,请在模块根文件夹中运行此命令
cpanm .