use strict; use warnings; my ( $host, %hash ); while () { chomp; next if /Folder/ or not $_; my ( $type, $name ) = /(\S+)\s*:\s*(\S+)/; if ( $type =~ "Host" ) { $host = $name; } elsif ( $type =~ "VM" ) { my $guest = $name; $hash{$host}{$guest}++; } } print "Key '$_' has " . ( values %{ $hash{$_} } ) . " values.\n" for keys %hash;