我如何通过TIME中的值对以下数组进行排序?
$VAR1 = [
{
'TIME' => '45',
'PLAYER' => '',
'TYPE' => '6'
},
{
'INFO' => 'Dissent',
'TEAMFLAG' => '1',
'PLID' => '8570',
'TIME' => '85',
'PLAYER' => 'Player1',
'TYPE' => '4'
},
{
'TEAMFLAG' => '1',
'PLID' => '8570',
'TIME' => '35',
'PLAYER' => 'Player1',
'TYPE' => '1'
},
{
'TEAMFLAG' => '0',
'PLID' => '145399',
'TIME' => '60',
'PLAYER' => 'Player3',
'TYPE' => '1'
},
{
'TEAMFLAG' => '0',
'PLID' => '145248',
'TIME' => '12',
'PLAYER' => 'Player1',
'TYPE' => '1'
},
{
'TIME' => '0',
'PLAYER' => '',
'TYPE' => '10'
}
]
以上是$data->{EVENTS}->{EVENT}
的一个数据转换,我需要对其进行排序,所以尝试了以下但不排序:
my @sorted = sort { $b->{TIME} <=> $a->{TIME} } $data->{EVENTS}->{EVENT};
答案 0 :(得分:1)
散列和数组元素是标量。在这种情况下,$data->{EVENTS}->{EVENT}
更具特色是对数组的引用。你想要@{ $data->{EVENTS}->{EVENT} }
。