Perl
1987年、Larry Wallが開発したプログラミング(LL)言語。
2018年現在、ver5.6.xとver6系がある。
しかしver6系はあまり人気も支持も少ない印象で、当分は5.x系が中心のままだと思われる。
ウェブサイトがホームページと呼ばれていたWindows95系当時の頃から動的サイトを作れる
言語として各社で利用され、2ch(現5ch)やmixiもPerlで作られていた。
メニュー
公式リファレンス
基本的文法
・シェバン
LL言語共通にあるシェバン(shebang)を付ける。
シェバンには実行ファイルを直接指図する書式と、環境変数を指図するタイプがある。
推奨されるのは後者の方。これは実行ファイルに指図した場合、環境によって動かなくなる
ケースがあるため。
ただソースを移すとき変わっていることは殆どなく、実際のところどちらでもよい。
#!/usr/bin/perl
package pkgProject;
use strict;
use warnings;
use DBI;
#外部モジュール読込
eval `../mod/sidemodule.pl`; die $@ if $@;
#コメント
=pod
コメント1
コメント2 でも使われてるところ見たことない
=cut
$hensu; #変数定義
$hensu_atai = 123; #初期値設定
my $hensu_my; #スコープ有り
my($a,$b,%c); #複数
my $hensu_hairetu = (123,'abc',%c); #混在
#外部modルーチン
subroutine_func(hikisu);
外部モジュールの利用
使い方のパターンが多いのでコーディングルールに配慮が必要
do `sidemod.pl`; die $@ if $@;
use lib '/home/perl/mod/';require sub_func;
use lib '/home/perl/mod/';require subs::sub_func;
BEGIN { unshift @INC, '/home/your/par/currnet/'; } require subs::sub_func;
__END__
特殊変数
| $0 |
スクリプトのコマンド名 |
| $! |
エラー番号、もしくはエラー文字列 |
| $? |
外部コマンドなどを実行した際の最後のステータス値 |
| $@ |
直前のevalで発声した例外メッセージ |
| $n |
パターンマッチ時にn番目の()にマッチした文字列 |
| $| |
出力のバッファリング、0以外でバッファリングが無効になる |
| $. |
ファイルハンドルの現在ある位置の行数 |
| $/ |
入力時の区切り文字。デフォルトは改行文字。 |
| $, |
print使用時のセパレーター |
| $" |
print "@list_context"とした際の区切り文字 |
| $$ |
プロセスのpid |
| @ARGV |
スクリプトに渡された引数 |
| $^D |
デバッグフラグの値 |
| $^E |
OS特有のエラーメッセージ |
| $^T |
スクリプト実行時刻(epoch time) |
| %ENV |
環境変数 |
| %INC |
インクルードされたライブラリなどを記録 |
| %SIG |
シグナルハンドラを設定するためのハッシュ |
| @INC |
ライブラリの検索対象ディレクトリ |
argc は argument count(引数の個数)
argv は argument vector(引数の配列)
比較処理
| 数値 |
文字列 |
意味 |
| $x == $y |
$x eq $y |
等しい (equal) |
| $x != $y |
$x ne $y |
等しくない (not equal) |
| $x < $y |
$x lt $y |
$x は $yより小さい (less than) |
| $x > $y |
$x gt $y |
$x は $yより大きい (greater than) |
| $x <= $y |
$x le $y |
$x は $y以下 (less than equal to) |
| $x >= $y |
$x ge $y |
$x は $y以上 (greater than equal to) |
| $x <==> $y |
$x cmp $y |
$x と $yが等しければ0&br;$x より $yが小さければ-1&br;$x より $yが大きければ1&br;(compare)&br; |
最終更新:2018年04月19日 23:30