PalmDreams本文へジャンプ

PicoWorkshop

CGI-PerlPerl
全般的な文法

Scriptは先頭《 上 》から順に実行されます。
Sub Routineなどは呼び出されたあとは呼び出し行へ戻ります。
また、文(ステートメント)の末尾には必ず
セミコロン";"をつけ、セミコロンまでが1つの命令として扱われます。

下記のサンプルでは、先ず初めに 「Hello 」 が表示され、次に 「World\n」 が表示されます。

1.  print "Hello" ;
2.  print "World\n" ;



 大文字、小文字は区別して扱われます。

print "Hello World\n";  # 正
Print "Hello World\n";  # 誤 ( printのpが大文字 )


Perlでは、整数・浮動小数点数のほかに、8進数や16進数も数値として扱えます。 8進数の場合は数値の先頭に "0" を、16進数の場合は数値の先頭に "0x" をつけます。

12345# 整数12_345# 整数(アンダースコアは無視)123.45# 小数1.23E45# 指数0x12345# 16進数012345# 8進数

 文字列はダブルクォテーション(")又はシングルコーテーション(')で囲みます。ダブルクォテーションはその中に含まれる変数やエスケープシーケンスを展開します。シングルコーテーションは展開しません

$a = 30 ;

print
"$a" ; # 変数の内容30が表示される
print
'$a' ; # $aと表示される




エスケープシーケンス


 Perlスクリプトから改行を出力する場合は print文を使用します。また改行などはエスケープシーケンスを使用します。

  エスケープシーケンスはバックスラッシュ(日本語環境では \ )で始まる文字列で、それぞれが特殊な意味を持ちます。


記述展開文字\n改行\r復帰\f改ページ\tタブ\bバックスペース\aアラーム\eエスケープ文字\33文字コード(8進数)\x1b文字コード(16進数)\"ダブルクォテーション

 エスケープシーケンスは文字列をダブルクォテーションで囲みます。ダブルクォテーションで囲まれた文字列は、展開して出力されます。 シングルクォテーションで囲まれた文字列は展開されず、そのままです。( \' と\\を除く )。


$a = "Hello" ;
print "$a World" ;# 表示→ ( Hello World )
print '$a World' ;# 表示→ ( $a World )

# エスケープシーケンスの展開
print "Hello \n World" ;# 表示→ ( Hello [
改行] World )
print 'Hello \n World' ;# 表示→ ( Hello \n World )





ページの先頭へ


コメント


 コメントはシャープ 「#」 からその行の行末までです。 CやJava の /* ~ */ で記述するような複数行にわたるコメントは記述する事出来ません。

print "hello world";      # comment

comment


 非推奨ですが、複数行のコメントは、 perldoc用の記述方である =pod と =cut を使用することで、記述できます。

print "ここは実行されます。\n";
=pod
ここはコメント行になります。
ここもコメント行になります。
=cut
print "ここも実行されます。\n";




ページの先頭へ






Perlの変数

Perlでは変数を使用してデータを保持します。Perlでの変数は宣言する必要が無く、新規の変数を Perlが自動的に変数として領域を確保します。

また、Perlの変数に関しては、文字列、数値の区別はありません。

注意:間違えて意図しない名前の変数も登録されてしまい、デバッグが困難になる場合があります。


Perlは変数名の先頭にPrefix と呼ばれる接頭子をつけ型宣言を行います。 変数型には、
scalar変数、配列変数、hash ( 連想配列変数 ) の 3種類があり以下のPrefixを付けます。

またPrefixには、Sub routineを表すものもあります。

scalar変数$配列変数@連想配列(hash)%サブルーチン&

 それぞれの型については独特のNameSpaceをもち、Scalar、配列、連想配列で同じ名前を宣言しても衝突がありません。



ページの先頭へ


変数名について


 Perlの変数名は、英字 ( a~z、A~Z ) またはアンダースコア ( _ ) で始まり、英字、アンダースコアまたは数字 ( 0~9 ) になります。 長さの制限はありません。また、大文字、小文字は区別して扱われます。

次ページ