88171.net

RubyをかじったPerl使いの暴走 (File I/O編)

テキストファイルを読み込んで単純に変数に突っ込みたい、として、 Rubyで書くとたとえばこんな感じ。

s = open('foobar') { |f|
    f.read
}

素敵やん?一方でPerlの場合。

open(my $fh, '<', 'foobar');
my $s = join('', <$fh>);
close($fh);

ダサい!Rubyの素敵さを是非Perlにも!

my $s;
{
    open(my $fh, '<', 'foobar');
    $s = join('', <$fh>);
}

ダサい!取って付けたような my $s がダサい!もう一声!

my $s = &{sub{
    open(my $fh, '<', 'foobar');
    join('', <$fh>);
}};

キモい! 無名サブルーチンのリファレンスをその場でデリファレンスとかキモい! でも文字列の中で式展開するのに "@{[ ~ ]}" が 割と普通に使われてることを考えると、 これはこれでアリ…なの?

とまぁ、コレくらいがPerlの限界でしょうかね。 誰かもっと素敵な書き方知ってたら教えてください。