Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

Perl:メソッドを呼んでその返り値で代入する代入演算子が欲しい

Perlの話だけれど、「あるオブジェクトをそのメソッドを呼び出した結果の値で上書きする」という代入演算子が欲しい。

$hoge = $hoge->foo_method #call method, and assign returned value to variable
$hoge =-> foo_method # equivalent

一見使い道がないようだけれど、複雑な構造体を扱うようなときに使えそう。

%hoge = {name => 'hoge', books => bless ([...], 'Book::Shelf')
$hoge->{books} =-> to_hash; #Book::Shelf class has to_hash method
%hoge == {name => 'hoge', books =>
[{
      title => 'book1',
      price => 1000,
    },
  {
      title => 'book2',
      price => 2000,
    },
  {
      title => 'book3',
      price => 3000,
    },]}

このような感じで。でも自分の実装が悪いだけで、そもそもスマートに書けていればこのような問題は発生しないのだと思う。

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?