データに対していろいろな演算を行うことができます。演算子とデータ、変数などから算術式をつくります。
「.」(ドット)で2つの文字列データをつなぎます。
"Masayuki "."Shio"
計算の優先順位は通常の計算と同様です。優先順位は下記の順番に高くなっています。
** >> *、/、% >> +、- >> .
必要に応じて括弧を用いた計算ができます。 ($x+2)*3
基本的には、四則演算は数値データに、連結は文字列データに適用されるべきものですが、Perlでは数値データに対して連結をしたり、文字列データに四則演算を適用したりすることが可能です。これはPerl言語独特の仕様です。
数値データに連結などの文字列データに対する演算を適用した場合には、数値データはその数値をそのまま文字列データに直したものとして解釈されます。
文字列データに対して数式の四則演算などの数値データに対する算術を適用すると、文字列データが数値として解釈されます。半角数字から始まる文字列は数値として解釈できるところまでをその数値として、数値以外で始まる文字列は「0」の値として計算が行われます。
undefの値
undefは数値データに対する演算を適用した場合には「0」として、文字列データに対する演算を適用した場合には、""(空文字列データ)として解釈されます。
変数の値を参照するのと同様に、算術式の結果を代入したり参照したりすることができます。
例
$x = 123; $y = 45; print $x . $y; # 12345と表示されるprint "12345"*1,"\n"; # 12345と表示されるprint "Masayuki"*1,"\n"; # 0と表示される$x = $x + 1; # 変数$xの値に1を加えたものを$xに代入($xの値が1増える)$name = $first_name . " " . $last_name; # 2つの変数の値を空白文字をはさんで連結して代入
$x = 1; $x = $x + 5; $x = $x * 2; print "x = $x\n";
$price = 500; $tax = $price * $rate / 100; print "価格$price円の品物の消費税は$tax円です。\n";
練習問題の答