Perl

提供: MacWiki
移動: 案内検索

Perl とは?[編集]

Mac OS X に標準で搭載されているスクリプト言語で、インストーラースクリプトなどにも使われています。 プログラミングの入門や、小さな処理の定型化に役に立つと思います。詳しくは Wikipedia:Perl などを参照してください。

旧Mac OS では MacPerl (MacJPerl) が利用できます (Mac OS X でも Classic環境で使用することができる)。

基本[編集]

Perl のコードはテキストエディタなどを使って、テキストファイルとして保存します。 /usr/bin/perlが実体であり、ファイルの先頭に

#!/usr/bin/perl

と書くとよい。

変数と基本データ型[編集]

Perl の変数の型は変数名の前の文字 (スカラー変数は$、配列は@、ハッシュは%) で区別される。

  • スカラー
    • スカラー変数は1つのデータを格納する。データとして文字列も数値も (リファレンスも) 受け入れる。
    • 文字列リテラルは、ダブルクォートあるいはシングルクォートで囲まれた文字の並びで、ダブルクォートの場合はその中にある変数や特殊文字を表すキャラクタシーケンスが展開されるが、シングルクォートの場合は変数展開されない (どちらでもよい場合、シングルクォートを使うことを好む人もいるが、多くの人は目立つダブルクォートを好むようだ)。
$string = "Hello World";
$number = 6;
$text = "The atomic number of carbon is $number.\n";
  • 配列
    • 配列は順序の定まったスカラーのリストをデータとして格納する。各要素のスカラーの型は共通のものである必要はなく、文字列と数値の混合したものでも受け入れる。
    • リストは()で囲まれたスカラーの「,」区切りの並びが基本である。配列を1つの要素のように書くことができるが、その場合は配列がスカラーの並びに展開される (配列の要素はスカラーのみ)。
    • 配列の各要素は $array[0] のような書き方で取得できる。これにスカラーを代入すれば配列の要素を変更できる。[]の間の数値はインデックスと呼ばれ、配列の最後のインデックスは $#array のような書き方で取得できる (配列の要素数はこれに+1したもの)。
    • 配列の複数の要素に一遍にアクセスするには @array[0, 1] のような書き方をする (配列のスライス)。[]の間にはインデックスを表す配列なども書ける。
    • 配列をスカラーとして扱うと配列の要素数と解釈される。この配列の代わりにリストを使うと、要素数ではなくリストの最後の要素が扱われる (通常は配列とリストを同じように考えられるが、微妙に異なるところがある)。
@macosx = ("Cheetah", "Puma", "Jaguar", "Panther", "Tiger", "Leopard");
$macosx[4] = "Tora";
  • ハッシュ
    • ハッシュは文字列のキーに値 (バリュー) を関連づけたリストをデータとして格納する。
    • リストは配列の場合と同様に()で囲まれたスカラーの「,」区切りの並びが基本であるが、キーとバリューの間は「,」の代わりに「=>」を使うのがふつう。
    • ハッシュの各要素 (バリュー) は $hash{key} のような書き方で取得できる。
    • ハッシュの複数の要素に一遍にアクセスするには @hash{@key} のような書き方をする (ハッシュのスライス)。
%macosx = (Jaguar => 10.2, Panther => 10.3, Tiger => 10.4, Leopard => 10.5);
@codename = keys %macosx;

2次元配列[編集]

2次元配列は、リファレンス・無名配列を用い、(1次元配列, 1次元配列, ...) という形を実現する。

@array2d = ([]); # or [()]:空の2次元配列
push(@array2d, [@array]); # 1次元配列@arrayを追加する
@array = @{$array2d[$i]}; # 「$i番目に位置する1次元配列」の表現方法

配列とリスト[編集]

split関数の戻り値は @{[ ]} で囲むとリストから配列に変換されるので、splice関数の引数にセットできる:

($b, $c) = splice(@{[split(/:/, "1:22:333")]}, 1);

CamelBones[編集]

CamelBones is a Cocoa/Perl bridge for Mac OS X.

同様のソフトウェアに、Ruby binding である RubyCocoa があります。⇒Ruby

参考になるサイト[編集]

Perl 入門[編集]


テキスト処理[編集]

Perl 一般[編集]

  • perldoc.jp

http://perldoc.jp/

  • Perl Documentation

http://www.mathematik.uni-ulm.de/help/perl5/doc/

Wiki内の関連ページ[編集]