Perl
From Wikipedia
- 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 插件。然后转到设置 > 语言和框架 > Perl5。在Perl 5 解释器字段中选择添加系统 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
放入 $builder -> requires
文件 Build.PL
中
要为您的项目安装必需的依赖项,请在 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 .