Just a guess...
#!/usr/bin/perl
use strict; # https://perlmonks.org/?node_id=11129561
use warnings;
my %hash;
while( <DATA> )
{
my ($one, $two, $three) = split /\s{2,}|\n/;
$hash{$one}{$two}{$three}++;
}
for my $value ( values %hash )
{
$_ = [ sort keys %$_ ] for values %$value;
}
use Data::Dump 'dd'; dd \%hash;
__DATA__
900000001 Network1 Login
900000002 Network1 2019-11-07T20:31:10.000Z
900000002 Network1 2021-02-19T13:47:25.000Z
900000002 Network1 2021-03-10T13:58:50.000Z
900000003 No Network1 NOT Registered
900000004 Network1 Login
900000005 Network1 Login
900000006 Network1 Login2
900000007 Network1 2021-03-10T17:11:24.000Z
900000007 Network1 2021-02-18T08:34:58.000Z
900000007 Network1 2021-01-25T17:19:44.000Z
500000008 Network1 2021-03-10T17:11:24.000Z
500000008 Network2 Not Used
500000008 Network1 2021-03-11T17:12:42.000Z
500000008 Network3 Not Used
400000008 Network1 2021-01-25T17:19:36.000Z
Outputs:
{
400000008 => { Network1 => ["2021-01-25T17:19:36.000Z"] },
500000008 => {
Network1 => ["2021-03-10T17:11:24.000Z", "2021-03-11T
+17:12:42.000Z"],
Network2 => ["Not Used"],
Network3 => ["Not Used"],
},
900000001 => { Network1 => ["Login"] },
900000002 => {
Network1 => [
"2019-11-07T20:31:10.000Z",
"2021-02-19T13:47:25.000Z",
"2021-03-10T13:58:50.000Z",
],
},
900000003 => { "No Network1" => ["NOT Registered"] },
900000004 => { Network1 => ["Login"] },
900000005 => { Network1 => ["Login"] },
900000006 => { Network1 => ["Login2"] },
900000007 => {
Network1 => [
"2021-01-25T17:19:44.000Z",
"2021-02-18T08:34:58.000Z",
"2021-03-10T17:11:24.000Z",
],
},
}