You seem to be pretty much at sea on this, so here's a bit of an elaboration on marinersk's approach. I'm assuming you can read "statements" from a file, get rid of newlines (see chomp), write data to a file, etc.
>perl -wMstrict -le
"use Data::Dumper;
;;
my @statements = (
'strawberry red green rose',
'apple red rose',
'mango green',
);
;;
my %hash;
for my $statement (@statements) {
my ($fruit, @colors) = split m{\s+}xms, $statement;
for my $color (@colors) {
$hash{$fruit}{$color} = 1;
}
}
;;
print Dumper \%hash;
"
$VAR1 = {
'mango' => {
'green' => 1
},
'strawberry' => {
'rose' => 1,
'green' => 1,
'red' => 1
},
'apple' => {
'rose' => 1,
'red' => 1
}
};
See perldsc for a discussion of techniques for iterating through a data structure of this (hash-of-hashes, HoH) or any other kind. As others have said, we would be happy to answer further questions, but the community really likes to see supporting work as well.
Update: Also see Re: hash of hashes for a different, perhaps more directly expressive data structure.