我有以下几乎正常的代码:
my $results = { data => [
map {
my $f = $_->TO_JSON;
$f->{display_field} = $_->display_field($q);
$f;
} $rs->all
]};
Run Code Online (Sandbox Code Playgroud)
只有我更喜欢它更像是以下内容:
my $results = { data => [
map {
%{$_->TO_JSON},
display_field => $_->display_field($q),
}, $rs->all
]};
Run Code Online (Sandbox Code Playgroud)
但是这会产生语法错误.我怎样才能做我想要的,或者我现在的版本是最好的?
更新:抱歉以前的额外分号.现在已经很晚了.不知道我是怎么错过它的.多谢你们!
它只会出现语法错误,因为Perl认为你需要省略后面的逗号map { ... },因为它将该映射解析为块,而不是表达式.放在+前面会解决这个问题.此外,您不能在匿名哈希中使用分号:
my $results = { data => [
map +{
# ^----------------- plus sign added
%{$_->TO_JSON},
display_field => $_->display_field($q);
# ^---- should be comma or nothing
}, $rs->all
]};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2725 次 |
| 最近记录: |