Perl


1987年、Larry Wallが開発したプログラミング(LL)言語。
2018年現在、ver5.6.xとver6系がある。
しかしver6系はあまり人気も支持も少ない印象で、当分は5.x系が中心のままだと思われる。
ウェブサイトがホームページと呼ばれていたWindows95系当時の頃から動的サイトを作れる
言語として各社で利用され、2ch(現5ch)やmixiもPerlで作られていた。

メニュー


公式リファレンス

Docs - www.perl.org https://www.perl.org/docs.html
perldoc.jp http://perldoc.jp/

基本的文法

 ・シェバン
 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);
 

外部モジュールの利用

使い方のパターンが多いのでコーディングルールに配慮が必要
open my $fh < xxx.pl or die $!;
  local $/;
  my $instance = <$fh>;
  close $fh;
  eval $instance; die $@ if $@;
 
do `sidemod.pl`; die $@ if $@; 
require 'sidemod.pl';  
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