in reply to Re: compare 2 arrays of strings and form a table
in thread compare 2 arrays of strings and form a table
use strict; use warnings; my %sets; my %owner; while (<DATA>) { my ($p, $q) = sort split; next if $p eq $q; $sets{ $owner{$p} ||= $p }{$p} = 1; $sets{ $owner{$q} ||= $q }{$q} = 1; %{ $sets{$p} } = ( %{ delete( $sets{ $owner{$p} } ) }, %{ delete( $sets{ $owner{$q} } ) }, ); $owner{$p} = $p; $owner{$q} = $p; } { local $\ = "\n"; local $, = "\t"; print(keys(%$_)) for values(%sets); } __DATA__ read book eat apple book novel apple banana play football tennis football novel mazagine
eat banana apple read book mazagine novel tennis play football
|
---|