Newbie difficulty with converting input of file of non-unique triples into a list of unique triples
Input file: logins.txt
server1,user1,% server1,user1,db1 server1,user2,% server1,user3,% server1,user1,% server1,user2,% server1,user2,db2 server1,user3,db3 server1,user3,% server2,user1,% server2,user1,db1 server2,user2,% server2,user3,% server2,user1,% server2,user2,% server2,user2,db2 server2,user3,db3 server2,user3,% server3,user1,% server3,user1,db1 server3,user2,% server3,user3,% server3,user1,% server3,user2,% server3,user2,db2 server3,user3,db3 server3,user3,%
Attempt at script which is not correct
#!/usr/bin/perl -w use strict; use Data::Dumper qw(Dumper); my (@nulogins, @logins); my %foo=(); my $fn = 'logins.txt'; open(my $fh, '<', $fn) or die "Could not open file '$fn' $!"; while (my $line = <$fh> ) { chomp($line); my @login = split /,/,$line; push @nulogins, @login; #print Dumper \@login; } print Dumper \@nulogins; for (@nulogins) { $foo{$_}++ }; @logins = (keys %foo); print Dumper \@logins; exit;
Desired result for contents of @logins
@logins = ( (server1,user1,%), (server1,user1,db1), (server1,user2,%), (server1,user1,%), (server1,user1,db1), (server1,user2,%), (server1,user2,db2), (server1,user3,%), (server1,user3,db3), (server2,user1,%), (server2,user1,db1), (server2,user2,%), (server2,user2,db2), (server2,user3,%), (server2,user3,db3), (server3,user1,%), (server3,user1,db1), (server3,user2,%), (server3,user2,db2), (server3,user3,%), (server3,user3,db3) ) ;
such that e.g. $logins[0] = (server1,user1,%) and $logins[0][0] = server1
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |