「Perl」の版間の差分
(→インストール: 情報を更新) |
(→ウィジェットバインディング: 情報を更新) |
||
(同じ利用者による、間の7版が非表示) | |||
16行目: | 16行目: | ||
== コマンド == |
== コマンド == |
||
− | |||
− | === Perl 5 === |
||
Perl 言語のインタプリタ: |
Perl 言語のインタプリタ: |
||
34行目: | 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' |
||
== パッケージ管理 == |
== パッケージ管理 == |
||
186行目: | 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'' を選択します。これで、プロジェクトの実行/デバッグ構成を作成し、デバッグを開始できるようになります。 |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
204行目: | 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 ドキュメント] にサンプルが載っています。 |
||
217行目: | 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] |
||
== 参照 == |
== 参照 == |
||
228行目: | 245行目: | ||
* {{man|1perl|perldoc}} |
* {{man|1perl|perldoc}} |
||
− | === |
+ | === Raku === |
− | * [https:// |
+ | * [https://raku.org/ raku プログラミング言語] |
+ | * [[Wikipedia:Raku_(programming_language)]] |
||
− | * [[wikipedia:ja:Perl 6]] |
||
− | * [https:// |
+ | * [https://raku.org/getting-started/ Perl 6 を始める] |
* [https://rakudo.org Rakudo] |
* [https://rakudo.org Rakudo] |
||
− | * [[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 のバグを報告:
$ 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 バインディング
- perl-gtk3 — GTK3 バインディング
- Perl/TK — Tk バインディング
- wxPerl — wxWidgets バインディング
- http://www.wxperl.it/ || perl-wxAUR
- Prima — Perl マルチプラットフォームグラフィックツールキット
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
これでモジュールツリーが作成されます...
依存関係を追加するには、ファイル 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
- Comprehensive Perl Archive Network
- wikipedia:ja:CPAN
- CPAN / CPAN Shell / CPANPLUS Quick Reference Guide