Quote-Code-1.01 - quoted strings with arbitrary code interpolation - metacpan.org
はじめに
Perlの文字列中で関数等の結果を展開するとき、ArrayRefで
囲んでそれをデリファレンスする必要がありますが、それを
Rubyっぽく書けるようにしてくれるモジュールです。
ドキュメントを読むと効率的であるとも書いています。
インストールには Perl 5.14以降が必要です。
コード
'qc'で該当の文字列を囲み、展開したい部分を '{}'で囲います。
#!perl package Obj; use strict; use warnings; sub say { my $class = shift; my $arg = shift || 'no message'; "$arg"; } 1; package main; use Quote::Code; my $hoge = 'hogehoge'; print "This is @{[ Obj->say('traditional style') ]}, $hoge!!\n"; print qc"This is { Obj->say('qc style') }, $hoge!!\n";
実行結果
'{}'に入れないと展開されないので、今までどおり使ってしまうと危険です。
This is traditional style, hogehoge!! This is qc style, $hoge!!
おわりに
標準でこんな機能欲しいなぁと思わせてくれるモジュールでした。