perlのリテラルは、ちょっとしゃれています。
perlのリテラル
perlのリテラルは、下記の種類に分類できます。
- 数値リテラル
- 文字列リテラル
- 配列リテラル
- 連想配列リテラル
- ファイルハンドル
- グロブ
- ヒアドキュメント
- 特殊トークン
数値リテラル
整数は、数字文字を並べて指定します。
例)123
perl -e '
$a=123;
$b=456;
print $a+$b;
'
579
数値は、アンダーバーで区切って見やすくできます。
例)1_234_567
perl -e 'print 1_234'
1234
0xのプリフィックスを使って16進数の整数指定ができます。
例)0xff
perl -e 'print 0xff'
255
0で始まる整数は、8進数とみなされます。
例)0377
perl -e 'print 011'
9
ピリオド(小数点)を使って浮動小数点表示の数値を表します。
例)123.4
指数表示には、Eを使います。
例1.23E-10
perl -e 'print 1/1.23E-10'
8130081300.81301
文字列
文字列は、シングルクオーテーションでくくります。
例) ’abc’
q/…/で指定することもできます。
例) q/abc/
perl -e 'print q/abc/'
abc
ダブルクオーテーションでくくることでも指定できますが、変数展開、エスケープ処理が行われます。
例)”abc${x}def”
perl -e '$a="abcde"; print "xx${a}xx"'
xxabcdexx
バッククオートでコマンドの実行結果を展開します。
例) `dir`
perl -e 'print `echo "abc"`'
abc
qx/…/形式でコマンドの実行結果を文字列リテラルとできます。
例) qx/dir/
perl -e 'print qx/echo "abc"/'
abc
配列
配列は、括弧()で指定します。
例) (1,2,3)
$ perl -e '@a=(10,11,12);print @a[2]'
12
連続する数値も指定できます。
例) (1..4)は、(1,2,3,4)と同じ意味です。
perl -e '@a=(10..14);print @a'
1011121314
連想配列(ハッシュ)
下記のようにキーと値を交互に指定した配列形式で指定します。
(key1,val1,key2,val2,key3,val3,…)
例)%var=(K1,V1,K2,V2,K3,V3)
perl -e '%a=(k10,11,k20,21,k30,31);print $a{k20}'
21
連想配列は、キーと値を=>でつないで配列指定します。
例)(a=>1,b=>2,c=>3)
perl -e '%a=(k10=>11,k20=>21,k30=>31);print $a{k20}'
21
配列変数全体は、@vのように@記号で指定します。
キーと値を交互に指定した配列でもできます。
例)%var=(K1,V1,K2,V2,K3,V3)
ファイルハンドル
- <STDIN> : 標準入力
- <STDOUT> : 標準出力
- <STDERR> : 標準エラー出力
- <ARGV> : 引数
- <DATA> : __DATA__の読み込み
- <HANDLE> : ユーザ定義
- <$VAR> : ユーザ定義
- <> : @ARGVで指定されたファイル名のストリーム。指定がない時には標準入力。
グロブ
<PATTERN>:PATTERNの指定にマッチするファイル名
<${VAR}>:パターンを変数で指定する場合。
ヒアドキュメント
<<IDENTIFIER
区切り記号をIDENTIFIER部分で指定する。
例) <<START
特殊トークン
- __FILE__ : 処理しているファイル名を示す。
- __LINE__ : 処理している行番号を示す。
- __END__ : プログラムの終了を表す。
- __DATA__ : データセクションの開始(__END__と同じ)
コメント