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ď č. 1Myslí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;