#!/usr/bin/perl use warnings; use strict; open (IN, "input.txt") || die $!; #open (OUT,">output.txt") || die $!; my %groups; my @rxnGraph; while () { chomp $_; my @rxn = split /#/, $_; next if length $rxn[1] == 0; my ($left_side, $right_side) = split /\s*<=>\s*/, $rxn[2]; my @left_els = split /\s*\+\s*/, $left_side; my @right_els = split /\s*\+\s*/, $right_side; my $x=0; for ($x=0; $x<=$#left_els; $x++){ $left_els[$x]=~s/^[0-9]//; if($left_els[$x]=~/C.*/){ #print ">>",$left_els[$x],"\n" } } # print ">L>@left_els\n"; my $y=0; for ($y=0; $y<=$#right_els; $y++){ $right_els[$y]=~s/^[0-9]//; if($right_els[$y]=~/C.*/){ # print ">>>$right_els[$y]\n"; } } # print ">R>@right_els\n"; $groups{$_}{left} = $rxn[0] for @left_els; $groups{$_}{right} = $rxn[0] for @right_els; } #while( my ($keys, $values) = each(%groups)){ #print ">>K>>>$keys\n"; #} for my $grp (keys %groups) { if (2 == grep exists $groups{$grp}{$_}, qw/left right/) { print "$groups{$grp}{right} ->", " $groups{$grp}{left}\n"; # push @rxnGraph, "$groups{$grp}{right},", # " $groups{$grp}{left}\n"; } } #print OUT @rxnGraph;