/ / Perl: Ładuj dane według wierszy - tablice, perl, plik, skrót

Perl: ładuj dane według wiersza - tablice, perl, plik, hash

Kontynuuję naukę Perla.

W tym przypadku próbuję załadować dane z pliku .txt do tablicy. Mój skrypt generuje netstat wyjście, które wygląda tak:

Proto Recv-Q Send-Q Local Address    Foreign Address         State       PID/Program name
tcp     0      0 0.0.0.0:3790        0.0.0.0:*               LISTEN      7550/nginx.conf
tcp     0      0 127.0.1.1:53        0.0.0.0:*               LISTEN      1271/dnsmasq
tcp     0      0 127.0.0.1:631       0.0.0.0:*               LISTEN      24202/cupsd

Następnym krokiem w procesie jest umieszczenie danych, które sąładowany z pliku do tablicy, a następnie w hash, dzięki czemu można go sortować według wierszy, na przykład sortować dane wyjściowe, aby znaleźć wszystkie informacje, które należą do konkretnego numeru portu.

Moje pytanie brzmi: jaki jest właściwy sposób załadowania tych danych do tablicy, a następnie hash, aby uczynić go dostępnym i sortować dla wyjścia?

Odpowiedzi:

0 dla odpowiedzi № 1

Myślę, że potrzebujesz AoH (tablica skrótów). Po tym możesz uzyskać wszystko, co chcesz z niestandardowych sort:

my @records = [
{ Proto => "tcp", "Recv-Q" => 0, ..., "Local Address" => "0.0.0.0:3790", ..., State => "Listen", ... },
{ Proto => "tcp", "Recv-Q" => 0, ..., "Local Address" => "127.0.1.1:53", ..., State => "Listen", ... },
{ Proto => "tcp", "Recv-Q" => 0, ..., "Local Address" => "127.0.0.1:631", ..., State => "Listen", ... },
];

my @records_sorted_by_state = sort { $a->{State} cmp $b->{State} } @records;