Perl 6を語る(第1回)コメントとアンスペース
2015年のクリスマスにPerl 6のバージョン1.0がリリースされるということで、少しずつ情報を整理していきたいと思います。
第1回はPerl 6のコメントとアンスペース(Unspaces)について取り上げます。(コメントから説明するのは、Perl 6の言語仕様で最初の方にあるからです)
単行コメント
コメントは#
で始まり、行の終わりまで続きます。コメントはプログラムの動作には影響を与えません。これはPerl 5や他のプログラミング言語とまったく同じです。
# これはコメント行です。内容は無視されます say "Hello Perl 6"; # Hello Perl 6と出力する
複数行コメント
PODの=begin
セクション使って複数行コメントが可能です。Perl 5と違い、最後に=cut
を書く必要はありません。
=begin comment これはコメントです。 内容は無視されます =end comment say "Hello Perl 6";
埋め込みコメント
Perl 6では埋め込みコメント(インラインコメント)も使うことができます。埋め込みコメントは#`
で始まり、後ろに任意の括弧文字が続きます。
#`( これは埋め込みコメントです。 内容は無視されます ) say #`(これもコメント) "Hello Perl 6";
#`
の後に続く文字はユニコードで定義されている括弧ならなんでも使えます。
#`『 これは埋め込みコメントです。 内容は無視されます ユニコードで使える括弧文字なら何でもOK () [] <> {} 「」“” 《》【】 』 say "Hello Perl 6";
括弧は複数重ねることができます。括弧を閉じる時も同じ個数にする必要があります。
#`{{ 括弧を重ねる } ←括弧が1個しかないので、これはコメント終了とは見なされない }} #`「『 「括弧の種類が別でもOK」 』」
アンスペース
アンスペースとは、バックスラッシュ\
の後に続く空白文字とコメントを構文解析に無視させる機能です。C言語で改行文字をエスケープする機能とよく似ています。
括弧文字と同様に、ユニコードで定義されている空白文字ならなんでもアンスペースできます。特にメリットはありませんが全角空白でも可能です。
(ちなみにアンスペースに限らず、Perl 6では半角と全角の空白に区別はありません。全角空白をコード中に書いても普通に動きます)
以下のコードは全て「Hello Perl 6」を出力します。バックスラッシュの後に続く空白文字(改行含む)やコメントは全て「無かった」ことにされます。
"Hello Perl 6".say; # say "Hello Perl 6" と同じ "Hello Perl 6"\ .say; # 分かりにくいけど全角空白でも可能 "Hello Perl 6"\ .say; # 改行を無効化 "Hello Perl 6"\ .say; "Hello Perl 6"\ # 途中にコメントがあっても無視される .say; "Hello Perl 6"\ #`( 埋め込みコメントも全部無視される ).say;