これはMoritz Lenz氏のWebサイトPerlgeek.deで公開されているブログ記事"Perl 5 to 6" Lesson 11 - Changes to Perl 5 Operatorsの日本語訳です。
原文はCreative Commons Attribution 3.0 Germanyに基づいて公開されています。
本エントリにはCreative Commons Attribution 3.0 Unportedを適用します。
Original text: Copyright© 2008-2010 Moritz Lenz
Japanese translation: Copyright© 2011 SATOH Koichi
NAME
"Perl 5 to 6" Lesson 11 - Perl5の演算子に対する変更
SYNOPSIS
# ビット演算子
5 +| 3; # 7
6 +^ 3 # 6
5 +& 3; # 1
"b" ~| "d" # 'f'
# 文字列連結
'a' ~ 'b' # 'ab'
# ファイルテスト
if '/etc/passwd' ~~ :e { say "exists" }
# 繰り返し
'a' x 3 # 'aaa'
'a' xx 3 # 'a', 'a', 'a'
# 3項演算子
$a == $b ?? 2 * $a !! $b - $a
# 連結比較
if 0 <= $angle < 2 * pi { ... }
DESCRIPTION
数値演算子(+
, -
, /
, *
, **
, %
)はすべて元のままです。
|
、^
、&
はジャンクションの生成に使われるので、ビット演算子は構文が変更されました。
それらはデータプレフィクスを伴い、例えば+|
は数値コンテキストでのOR、~^
は文字列に対する1の補数です。
ビットシフト演算子も同様に変更されました。
文字列連結は~
になり、.
はメソッド呼び出しに使われます。
ファイルテストはペア記法で書かれるようになりました。Perl5の-e
は:e
になります。
$_
以外がファイル名として使われる場合、$filename.IO ~~ :e
のようにして与えることができます。
繰り返し演算子x
は2種類に分けられました: x
は文字列、xx
はリストを繰り返します。
これまで$condition ? $true : $false
だった3項演算子は$condition ?? $true !! $false
と書かれます。
比較演算子は連結できるようになりました。$a < $b < $c
のように書けば期待した結果が得られます。
MOTIVATION
演算子に対する多くの変更はより良いハフマン符号化を意図しています。つまりよく使われるものには短い名前(メソッド呼び出しの.
のような)、そして滅多に使われない演算子には長い名前(文字列に対するビット単位のANDである~&
のような)ということです。
連結比較演算子は数学における一般的な記法であり、より自然な言語への前進です。
SEE ALSO
http://perlcabal.org/syn/S03.html#Changes_to_Perl_5_operators
コメント
コメントを投稿