Perl

来自 ArchWiki

来自 维基百科

Perl 是一系列高级、通用、解释型、动态编程语言。该系列语言包括 Perl 5 和 Raku(前身为 Perl 6)。
Perl 语言借鉴了其他编程语言的特性,包括 C、shell 脚本 (sh)、AWK 和 sed。它们提供了强大的文本处理功能,没有许多现代 Unix 命令行工具中任意数据长度的限制,从而方便了文本文件的轻松操作。Perl 5 在 1990 年代后期作为 CGI 脚本语言获得了广泛的普及,部分原因是其当时无与伦比的正则表达式和字符串解析能力。

安装

安装 perl 软件包。

命令

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 绑定
https://gtk2-perl.sourceforge.net/ || gtk2-perl
  • perl-gtk3 — GTK3 绑定
https://metacpan.org/release/Gtk3 || perl-gtk3
  • Perl/TK — Tk 绑定
https://search.cpan.org/dist/Tk/ || perl-tk
  • wxPerl — wxWidgets 绑定
http://www.wxperl.it/ || perl-wxAUR
  • Prima — 一个 Perl 多平台图形工具包
https://metacpan.org/release/Prima || perl-primaAUR

要在 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 软件包。

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 .

更多信息请参见:cpan 页面cookbook

参见

Perl 5

Raku

CPAN

教程

杂项