Я использую инструмент командной строки Amazon AWS для извлечения всех запущенных экземпляров. Это создает файл .json с (измененным) следующим форматом:
{
"Reservations": [
{
"OwnerId": "8172695814",
"ReservationId": "q-9d77c34a",
"Groups": [],
"Instances": [
{
...
"LaunchTime": "2014-08-14T11:37:29.000Z",
"Tags": [
{
"Value": "Server 5",
"Key": "Name"
}
],
"ProductCodes": [],
...
Я хочу использовать этот вывод в качестве исходного кода для приложения, похожего на информационную панель, созданного на Perl. Моя проблема в том, что список серверов в файле .json не отсортирован так, как я хочу: я хотел бы, чтобы они были упорядочены по имени тега (значения позади тегов-значения). Таким образом, в приведенном выше примере любой сервер с 1 по 4 должен быть выше сервера 5, а все остальные ниже.
(отредактировано) Я могу перебрать значения, чтобы отобразить их на панели инструментов следующим образом:
foreach my $instance_list (@instances) {
foreach my $instance (@$instance_list){
if ( $$instance{'Instances'}[0]{'State'}{'Name'} !~ m/terminated/io ) {
if ( $$instance{'Instances'}[0]{'Tags'}[0]{'Value'} =~ m/Server.*/o ) {
...
Но теперь задача состоит в том, чтобы отсортировать элементы в правильном порядке. Может ли кто-нибудь сказать мне, как это можно сделать в Perl? Спасибо!