2011-03-19: 複数行コメントについて加筆しました。 背景 Perlにもしあったらいいなぁと思う機能 - サンプルコードによるPerl入門 を読んでて「それPerl6でできるよ」と思ったので。一応Perlです。一応。 1. ダブルクォーテーションの中で関数が展開できる機能 ダブルクォート( qq 演算子)はエスケープシーケンス、スカラ、配列、ハッシュ、関数、クロージャを展開します: "aaa { $book.title } bbb" Q クォート演算子でオレオレ展開ルールも作れます(Rakudoだとまだ動きませんが): Q:function/funcall: &func()/; Q:closure/closure: { ucfirst('hello') ~ ', world' }/; # qq//と同じ Q:qq/$scalar, @array[], %hash{}, &subroutine(), { 'closure' }/; 2. メソッドにおけるオブジェクトの名前 自身を self で参照できます: class Foo { has Str $.objective = 'world'; method greet { say "Hello, { self.objective }"; } } Foo.new.greet; # Hello, world Foo.new(:objective<Perl6>).greet; # Hello, Perl6 3. データを簡単にダンプする標準関数 オブジェクトをPerl6コードにダンプする .perl メソッドがあります: say 42.perl; # 42 say { foo => 'bar', hoge => qw/fuga piyo/ }.perl; # {"foo" => "bar", "hoge" => ("fuga", "piyo")} デバッグ用には変数名が分か