Perl日記

PerlとかRubyとかPHPとかPythonとか

ハイパー間接オブジェクト記法タイム

perldoc perlobj-Indirect Object Syntax
また気持ち悪い書き方を覚えてしまったぜ・・・。

use strict;
use warnings;
use CGI;

my $args = { param1 => 'value1' };

my $q = new CGI$args; #=> typoじゃないよ!

my $p1 = param $q('param1');
say $p1; #=> value1


my @q = $q;

charset {$q[0]}('UTF-8');
#=> $q[0]->charset('UTF-8');

say charset $q; #=> Error!
                #=> say() on unopened filehandle charset

say {*STDOUT}(charset {$q[0]});
#=> 'UTF-8'

say STDOUT charset {$q[0]};
#=> 'UTF-8'


間接オブジェクト記法使うために{}で括るとかもうね。
間接オブジェクト記法は、print と say でこりごりです><