Perl - user000422/0 GitHub Wiki
基本情報
インタプリタ型の言語処理系。 習得難易度の低い言語で、テキスト処理が得意。 CGIによく使われる。Movable Typeで使われる。
項目 | リリース | 備考 |
---|---|---|
Perl 5.0 | 1994年 | |
Perl 5.38 | 2023年 | 基本的に 5.3 をインストール |
Perl 6 | 2015年 | ★ Perl5とは互換性がない Perlとは別物 |
pl
最上部の #!/usr/bin/perl
(シェバン行)は必須。
#!/usr/bin/perl
# strict 厳格モード Perlの文法チェックを厳しくするためのプラグマ
use strict;
# print 文字列はダブルクォーテーションで囲む
print("Hello!! \n");
■変数
# 変数
$sample_word = "Hello"; # 文字列
$sample_num = 100; # 数値
# 配列
@sample_array = (10, 20, 30);
$result = $sample_array[0]; # 取得
# 連想配列
%sample_array = ("red" -> "赤", "blue" -> "青");
$result = $sample_array{"red"}; # 取得
■サブルーチン 定義済みの標準関数とは別で自由に定義する関数
sub sample_function {
# shift 引数をまとめて取得
my $sample = shift;
# 引数を個別の変数で取得(引数の順番と変数の順番を意識すること)
my ($sample_a, $sample_b) = @_;
# 引数を取得(1つずつ)
$tmp = $_[0];
return $sample;
}
# サブルーチン呼び出し
&sample_function($sample_num);
■if
if ($sample_num == 100) {
# TODO
} elsif ($sample_num == 200) {
print("elsif");
} else {
print("else");
}
# 文字列比較
if ($sample eq $test) {
print("左辺と右辺は一致している。");
} elsif ($sample ne $test) {
print("左辺と右辺は異なっている。");
}
# defined 定義判定 定義されていたらTRUE
if (defined $sample) { return }
■for
for ($i =0; $i < 10; $i++) {
print($i . "週目"):
}
# 参考書外の記述(でも一般的?
# keyをループ
foreach $key (keys %sample_array) {
print("%sample_array{$key}\n"); # valueを出力
}
■文字列操作
# 連結演算子 文字列を連結する
$result = "ABC" . "DEF";
# length 文字数を返却
$result = length($sample_word);
■配列操作
# sort 配列を昇順に並び替える
sort(@sample_array);
# grep 記述中
# join 記述中
■時間
# time と localtime を組み合わせて現在日時を出力
$totalsec = time;
($sec, $min, $hour, $day, $month, $year) = localtime($totalsec);
CGI
#!/usr/bin/perl
# package 名前空間
package Sample;
# リクエストパラメータの取得
$app->param('sample_id');
# BEGIN
BEGIN{
# pass
}