Featured image of post Data::Modelで$row->get_columnsを覚えた

Data::Modelで$row->get_columnsを覚えた

JSONを返すスクリプトの記事で、リストを作るときに以下のようにしていたのですが

JSONを返すスクリプトの記事で、リストを作るときに以下のようにしていたのですが。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
my @json;
for my $msg (@{$messages}) {
    push @json,
      {
        id  => $msg->id,
        msg => $msg->msg,
        ts  => $msg->ts,
      };
}
$self->render(json => [@json]);

レコードの情報は、get_columnsで取得できることがわかった。 それをふまえて書くと、上の処理に相当するコードは以下のようになります。

1
2
3
4
5
my @json;
for my $msg (@{$messages}) {
    push @json, $msg->get_columns;
}
$self->render(json => [@json]);

ここまで来たら、mapを使って書いてみたいですよね。

1
2
my @json = map { $_->get_columns } @{$messages};
$self->render(json => [@json]);

で、これだけだったら、直接書いても良さそうです。

1
$self->render(json => [map { $_->get_columns } @{$messages}]);

ただ、本当なら、$messagesから直に変換出来れば便利ですけどね。

comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。