「Perl」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Pkg/AUR テンプレートの更新)
 
(同じ利用者による、間の8版が非表示)
13行目: 13行目:
 
== インストール ==
 
== インストール ==
   
  +
{{Pkg|perl}} パッケージを [[インストール]] して下さい。
=== Perl 5 ===
 
 
Perl 5 の {{Pkg|perl}} パッケージは {{Pkg|base}} グループとして Arch Linux ではデフォルトでインストールされます。
 
 
=== Perl 6 ===
 
 
Perl 6 コンパイラが含まれている {{AUR|rakudo}} は MoarVM と JVM をターゲットとします。依存パッケージとして AUR の {{AUR|moarvm}} パッケージがインストールされます。
 
   
 
== コマンド ==
 
== コマンド ==
 
=== Perl 5 ===
 
   
 
Perl 言語のインタプリタ:
 
Perl 言語のインタプリタ:
40行目: 32行目:
   
 
$ perlthanks
 
$ perlthanks
 
=== Perl 6 ===
 
 
Rakudo Perl 6 コンパイラ:
 
 
$ perl6
 
 
== Perl 5 のサンプル ==
 
 
{{ic|$ perl hello-world.pl}} で実行する古典的な "Hello, World!" プログラム:
 
 
{{hc|hello-world.pl|
 
use strict;
 
use warnings;
 
 
print "Hello, World!\n";
 
}}
 
 
実行可能属性を付与することで {{ic|$ ./hello-you}} で実行できるプログラム:
 
 
{{hc|hello-you|<nowiki>
 
#!/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";
 
</nowiki>}}
 
 
フィボナッチ数列を出力するワンライナー:
 
 
$ perl -le'$==1,(1x$_)=~/(^)(1|11\1)*(?{$=++})^/,print$=for 0..10'
 
   
 
== パッケージ管理 ==
 
== パッケージ管理 ==
192行目: 149行目:
 
== ウィジェットバインディング ==
 
== ウィジェットバインディング ==
   
以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します:
+
以下の [[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]] のバインディングが存在します:
   
 
* {{App|gtk2-perl|GTK2 バインディング|http://gtk2-perl.sourceforge.net/|{{Pkg|gtk2-perl}}}}
 
* {{App|gtk2-perl|GTK2 バインディング|http://gtk2-perl.sourceforge.net/|{{Pkg|gtk2-perl}}}}
  +
* {{App|perl-gtk3|GTK3 バインディング|https://metacpan.org/release/Gtk3|{{Pkg|perl-gtk3}}}}
 
* {{App|Perl/TK|Tk バインディング|http://search.cpan.org/dist/Tk/|{{Pkg|perl-tk}}}}
 
* {{App|Perl/TK|Tk バインディング|http://search.cpan.org/dist/Tk/|{{Pkg|perl-tk}}}}
* {{App|perlqt|[[Qt]] バインディング|https://github.com/KDE/perlqt|}}
 
 
* {{App|wxPerl|wxWidgets バインディング|http://www.wxperl.it/|{{AUR|perl-wx}}}}
 
* {{App|wxPerl|wxWidgets バインディング|http://www.wxperl.it/|{{AUR|perl-wx}}}}
  +
* {{App|Prima|Perl マルチプラットフォームグラフィックツールキット|https://metacpan.org/release/Prima|{{AUR|perl-prima}}}}
   
 
Perl で使用するには、ウィジェットキットをインストールする必要があります。
 
Perl で使用するには、ウィジェットキットをインストールする必要があります。
  +
  +
== JetBrains IDE での開発 ==
  +
  +
IntelliJ Idea などの JetBrains IDE を使用している場合は、{{AUR|perl-bundle-camelcade}} をインストールします。次に、[https://plugins.jetbrains.com/plugin/7796-perl Perl] プラグインをインストールします。次に、''Settings > Languages & Frameworks > Perl5'' に移動します。''Perl 5 Interpreter'' フィールドセレクトで ''Add System Perl'' を選択します。これで、プロジェクトの実行/デバッグ構成を作成し、デバッグを開始できるようになります。
   
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==
210行目: 172行目:
   
 
$ cpan App::cpanminus
 
$ cpan App::cpanminus
  +
  +
==== ucpan ====
  +
  +
[https://metacpan.org/pod/release/KPEE/App-ucpan-1.13/script/ucpan ucpan] は、CPAN モジュール (特に local-lib にインストールされる) 用の優れた完全自動アップデーターです。インストールするには、以下を使用します。
  +
  +
cpan App::ucpan
   
 
[http://search.cpan.org/dist/App-cpanminus/bin/cpanm cpanminus ドキュメント] にサンプルが載っています。
 
[http://search.cpan.org/dist/App-cpanminus/bin/cpanm cpanminus ドキュメント] にサンプルが載っています。
223行目: 191行目:
 
$ cpan
 
$ cpan
 
cpan[1]> o conf init
 
cpan[1]> o conf init
  +
  +
=== 新しいモジュールを作成する ===
  +
  +
==== module-starter ====
  +
  +
[https://metacpan.org/pod/distribution/Module-Starter/bin/module-starter Module::Starter] 新しいモジュールの作成に役立ちます... インストール:
  +
  +
cpanm Module::Starter
  +
  +
使用法:
  +
  +
module-starter --module=App::foobar --author="My name here" --email=my@email.here --mb
  +
  +
これでモジュールツリーが作成されます...
  +
  +
{{Note|オプション {{ic|--mb}} は [https://metacpan.org/release/Module-Build Module::Build] を使用するモジュールを作成します。次のパートでは、このモジュールを使用していることを前提としています。}}
  +
  +
依存関係を追加するには、ファイル {{ic|Build.PL}} の {{ic|$builder -> Required}} 内に {{ic|<nowiki>module_name => version_or_0</nowiki>}} を追加します。
  +
  +
プロジェクトに必要な依存関係をインストールするには、{{ic|App-foobar}} フォルダー内で実行します:
  +
  +
cpanm --installdeps .
  +
  +
git フォルダーをスキップするには、{{ic|$builder}} の下に追加します
  +
  +
add_to_manifest_skip => [ '.git' ],
  +
  +
スクリプトの追加は次のように行うことができます:
  +
  +
mkdir bin
  +
touch bin/foobar
  +
  +
このスクリプトを実行するには:
  +
  +
perl -Ilib bin/foobar
  +
  +
ここでプロジェクトのバージョンを変更できます: {{ic|lib/App/foobar.pm}}
  +
  +
モジュールをインストールするには、モジュールのルートフォルダーで次のコマンドを実行します:
  +
  +
cpanm .
  +
  +
詳細はこちらを見て下さい: [https://metacpan.org/release/Module-Build cpan page], [https://metacpan.org/pod/Module::Build::Cookbook cookbook]
   
 
== 参照 ==
 
== 参照 ==
234行目: 245行目:
 
* {{man|1perl|perldoc}}
 
* {{man|1perl|perldoc}}
   
=== Perl 6 ===
+
=== Raku ===
   
* [https://perl6.org/ Perl 6 プログラミング言語]
+
* [https://raku.org/ raku プログラミング言語]
  +
* [[Wikipedia:Raku_(programming_language)]]
* [[wikipedia:ja:Perl 6]]
 
* [https://perl6.org/getting-started/ Getting started with Perl 6]
+
* [https://raku.org/getting-started/ Perl 6 を始める]
 
* [https://rakudo.org Rakudo]
 
* [https://rakudo.org Rakudo]
* [[wikipedia:Rakudo_Perl_6|Rakudo Perl 6 on Wikipedia]]
+
* [[wikipedia:Rakudo]]
  +
* {{man|1|perl6|url=https://manpages.debian.org/latest/rakudo/raku.1.en.html}}
* [https://linux.die.net/man/1/perl6 perl6(1) man page]
 
   
 
=== CPAN ===
 
=== CPAN ===

2023年12月30日 (土) 23:41時点における最新版

関連記事

Wikipedia より:

Perl は高水準・汎用・インタプリタ・動的プログラミング言語である。Perl には Perl 5 と Perl 6 が存在する。
Perl 言語は C 言語、シェルスクリプト (sh)、AWK、sed など他のプログラミング言語の優れた機能を取り入れている。強力なテキスト処理機能を備えており、同様の機能を持った Unix コマンドラインツールに存在するデータ長の制限がなく、簡単にテキストファイルを操作することができる。Perl 5 は1990年代後期には CGI スクリプト言語として広く人気を得た。人気となった理由として卓越した正規表現や文字列解析機能が挙げられる。

インストール

perl パッケージを インストール して下さい。

コマンド

Perl 言語のインタプリタ:

$ perl

Perl のバグを報告:

$ perlbug

POD 形式の Perl ドキュメントを閲覧:

$ perldoc

Perl の開発者やメンテナに感謝のメッセージを送る:

$ perlthanks

パッケージ管理

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 バインディング
http://gtk2-perl.sourceforge.net/ || gtk2-perl
  • perl-gtk3 — GTK3 バインディング
https://metacpan.org/release/Gtk3 || perl-gtk3
  • Perl/TK — Tk バインディング
http://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 での開発

IntelliJ Idea などの JetBrains IDE を使用している場合は、perl-bundle-camelcadeAUR をインストールします。次に、Perl プラグインをインストールします。次に、Settings > Languages & Frameworks > Perl5 に移動します。Perl 5 Interpreter フィールドセレクトで Add System Perl を選択します。これで、プロジェクトの実行/デバッグ構成を作成し、デバッグを開始できるようになります。

ヒントとテクニック

高度なモジュール管理

cpanminus

cpanminus はモジュール管理を拡張します。設定不要で local::db と統合されています。インストールするには:

$ cpan App::cpanminus

ucpan

ucpan は、CPAN モジュール (特に local-lib にインストールされる) 用の優れた完全自動アップデーターです。インストールするには、以下を使用します。

cpan App::ucpan

cpanminus ドキュメント にサンプルが載っています。

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

これでモジュールツリーが作成されます...

ノート: オプション --mbModule::Build を使用するモジュールを作成します。次のパートでは、このモジュールを使用していることを前提としています。

依存関係を追加するには、ファイル Build.PL$builder -> Required 内に module_name => version_or_0 を追加します。

プロジェクトに必要な依存関係をインストールするには、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 page, cookbook

参照

Perl 5

Raku

CPAN

チュートリアル

その他