「Perl」の版間の差分
(翻訳) |
Kusakata.bot2 (トーク | 投稿記録) (Pkg/AUR テンプレートの更新) |
||
15行目: | 15行目: | ||
=== Perl 5 === |
=== Perl 5 === |
||
− | Perl 5 の {{Pkg|perl}} パッケージは {{ |
+ | Perl 5 の {{Pkg|perl}} パッケージは {{Pkg|base}} グループとして Arch Linux ではデフォルトでインストールされます。 |
=== Perl 6 === |
=== Perl 6 === |
2019年11月21日 (木) 18:49時点における版
Wikipedia より:
- Perl は高水準・汎用・インタプリタ・動的プログラミング言語である。Perl には Perl 5 と Perl 6 が存在する。
- Perl 言語は C 言語、シェルスクリプト (sh)、AWK、sed など他のプログラミング言語の優れた機能を取り入れている。強力なテキスト処理機能を備えており、同様の機能を持った Unix コマンドラインツールに存在するデータ長の制限がなく、簡単にテキストファイルを操作することができる。Perl 5 は1990年代後期には CGI スクリプト言語として広く人気を得た。人気となった理由として卓越した正規表現や文字列解析機能が挙げられる。
目次
インストール
Perl 5
Perl 5 の perl パッケージは base グループとして Arch Linux ではデフォルトでインストールされます。
Perl 6
Perl 6 コンパイラが含まれている rakudoAUR は MoarVM と JVM をターゲットとします。依存パッケージとして AUR の moarvmAUR パッケージがインストールされます。
コマンド
Perl 5
Perl 言語のインタプリタ:
$ perl
Perl のバグを報告:
$ perlbug
POD 形式の Perl ドキュメントを閲覧:
$ perldoc
Perl の開発者やメンテナに感謝のメッセージを送る:
$ perlthanks
Perl 6
Rakudo Perl 6 コンパイラ:
$ perl6
Perl 5 のサンプル
$ perl hello-world.pl
で実行する古典的な "Hello, World!" プログラム:
hello-world.pl
use strict; use warnings; print "Hello, World!\n";
実行可能属性を付与することで $ ./hello-you
で実行できるプログラム:
hello-you
#!/usr/bin/perl use strict; use warnings; print "Please enter your name: "; my $name = <STDIN>; chomp ($name); print "Hello $name. Glad to meet you.\n";
フィボナッチ数列を出力するワンライナー:
$ perl -le'$==1,(1x$_)=~/(^)(1|11\1)*(?{$=++})^/,print$=for 0..10'
パッケージ管理
Comprehensive Perl Archive Network (CPAN) は Perl 言語で書かれた250000以上のソフトウェアモジュールとドキュメントが収録されているリポジトリです。12000人以上の Perl プログラマが貢献しています。
CPAN は Perl モジュールの CPAN.pm の名前でもあり、モジュールを使用して CPAN アーカイブから Perl ソフトウェアをダウンロード・インストールできます。
pacman と AUR
人気の CPAN モジュールの一部は Arch リポジトリに パッケージ として登録されています。AUR にはさらに多くのモジュールが存在します。
CPAN.pm
CPAN.pm モジュールは Perl に付属しています。シェルからインタラクティブに使用したり Perl スクリプトから利用できます。
cpan の設定
使用する前に、モジュールの設定が必要です。以下のようにシェルからインタラクティブに設定できます (一部出力を省略):
$ 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]
大抵の場合は自動設定で問題ありません。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/toxygeneb/.cpan/CPAN/MyConfig.pm'
local::lib
オプションを選択すると追加でモジュールがインストールされます。
自動設定を使用しないときはシェルから 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 | インストール後にビルドディレクトリを削除 | No |
shell | 使用するシェル | /bin/bash |
halt_on_failure | 失敗時に停止 | No |
colorize_output | カラー出力のオンオフ | No |
histfile | 履歴ファイルの保存場所 | $HOME/.cpan/histfile |
histsize | 履歴ファイルのサイズ | 100 lines |
テキストエディタを使って設定ファイル $HOME/.cpan/CPAN/MyConfig.pm
を編集することもできます。
使用例
モジュールをインストールするには cpan
にパラメータとしてモジュール名を指定してください (スペースで区切って複数のモジュール名を指定できます):
$ cpan Acme::MetaSyntactic
cpan
のインタラクティブシェルを起動するには:
$ cpan
モジュールの情報を表示:
cpan[1]> m Acme::MetaSyntactic Reading '/home/toxygeneb/.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/TK — Tk バインディング
- perlqt — Qt バインディング
- wxPerl — wxWidgets バインディング
- http://www.wxperl.it/ || perl-wxAUR
Perl で使用するには、ウィジェットキットをインストールする必要があります。
ヒントとテクニック
高度なモジュール管理
cpanminus
cpanminus はモジュール管理を拡張します。設定不要で local::db
と統合されています。インストールするには:
$ cpan App::cpanminus
cpanminus ドキュメント にサンプルが載っています。
Bundle::CPAN
Bundle::CPAN ディストリビューションをインストールすることで CPAN.pm に機能が多数追加されます:
$ cpan Bundle::CPAN
cpan 設定の再実行
$ cpan cpan[1]> o conf init
参照
Perl 5
Perl 6
- Perl 6 プログラミング言語
- wikipedia:ja:Perl 6
- Getting started with Perl 6
- Rakudo
- Rakudo Perl 6 on Wikipedia
- perl6(1) man page
CPAN
- Comprehensive Perl Archive Network
- wikipedia:ja:CPAN
- CPAN / CPAN Shell / CPANPLUS Quick Reference Guide