テキスト処理のために作られたスクリプト言語だが、現在はインターネット上のCGIプログラムとしての他さまざまな目的で使用されている。
ちゃんとしたプログラミング言語なので変数(配列)・制御構造・関数などが使用できる。
文法的には特殊な変数などが多く存在するのでわかりにくい面もある。
Perlはネットワーク・データベースなど、どんな目的にでも使用できるが、以下の例では文法的なことより全体の感じをつかんで欲しい。
コマンドライでの実行方法。
-eオプションの後にシングルクォートで囲んだ命令を打ち込む。
-nによってファイルを1行づつ読み込んで処理をする。
# perl -e 'print "Hello World\n"' <- おなじみHello World Hello World # perl -n -e 'print if /main/;' *.c <- C言語プログラムから文字列mainを含んだ行を出力 main(int argc, char *argv) #
データファイル中の数値の合計を出力するスクリプト。
#!/bin/perl
$total = 0;
while(<>) {
@nums = split(' ', $_);
foreach $n (@nums) {
$total += $n;
}
}
print $total,"\n";
# cat data <- サンプルデータ 1 2 3 4 5 6 7 8 9 # chmod +x total.pl <- 属性を実行可能に変更 # ./total.pl data <- 実行 45 #
http://www2.gol.com/users/abetmhr/index.htmlを表示するスクリプト。
ここでは Webページをそのまま出力しているだけだが、データのHTMLタグを解釈して表示すればWebブラウザーになる。
#!/bin/perl
$addr = (gethostbyname("www2.gol.com"))[4];
$name = pack("S n a4 x8", 2, 80, $addr);
socket(S, 2, 1, 0);
connect(S, $name);
binmode(S);
select(S);
$| = 1;
select(stdout);
print S "GET /users/abetmhr/index.html HTTP/1.0\r\n\r\n";
while (<S>) {
print;
}
close(S);
# chmod +x geturl.pl <- 属性を実行可能に変更 # ./geturl.pl <- 実行 ここにhttp://www2.gol.com/users/abetmhr/index.htmlのデータが出力される #