my @leftCon; my @rightCon; while (<>) { /^\s*\[([^]]+)\]/ and push @leftCon, $1; /\[([^]]+)\]\s*$/ and push @rightCon, $1; } my $leftnoel = @leftCon; my $rightnoel = @rightCon; for (my $x = 0; $x <= $leftnoel-1; $x++) { # remove leading tab $leftCon[$x] =~ s/\t//g; $leftCon[$x] =~ s/\s+//g; } for (my $y = 0; $y <= $rightnoel-1; $y++) { # remove leading space char $rightCon[$y] =~ s/\s+//g; } #### for ( my $x = 0; $x < $numFrom; $x++) { for (my $y = 0; $y < $leftCon-1; $y++) { if (@fromCon[$x] eq @leftCon[$y]) { my $fromConv = @fromCon[$x]; $fromConv = $leftcounter."L"; push @fromConv, $fromConv; } if (@toCon[$x] eq @leftCon[$y]) { my $toConv = @toCon[$y]; $toConv = $leftcounter."L"; push @toConv, $toConv; } $leftcounter++; } for (my $y = 0; $y < $rightConnectors-1; $y++) { if (@fromCon[$x] eq @rightCon[$y]) { my $fromConv = @fromCon[$x]; $fromConv = $leftcounter."R"; push @fromConv, $fromConv; } if (@toCon[$x] eq @rightCon[$y]) { my $toConv = @toCon[$y]; $toConv = $leftcounter."R"; push @toConv, $toConv; } $rightcounter++; } } print @fromConv; print @toConv;