/ / Perl: Načítať dáta podľa riadkov - arrays, perl, file, hash

Perl: Načítať dáta podľa riadkov - array, perl, file, hash

Pokračujem v učení sa o Perle.

V tomto prípade sa snažím načítať dáta z súboru .txt do poľa. Môj skript generuje netstat výstup, ktorý vyzerá takto:

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

Ďalším krokom procesu je vloženie dát, ktoré súnačítané z súboru do poľa a potom v hash, čím sa zaraďuje do riadkov, napríklad triedenie výstupu na zistenie všetkých informácií, ktoré patria ku konkrétnemu číslu portu.

Moja otázka je: Aký je správny spôsob načítania týchto dát do poľa a potom hash, aby boli prístupné a zaradili sa do výstupu?

odpovede:

0 pre odpoveď č. 1

Myslím, že potrebujete AoH (pole hashov). Potom môžete získať všetko, čo chcete, s vlastným 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;