+sub connector {
+ my ( $from, $to ) = @_;
+ warn "# connector $from - $to ",dump( $line_parts[$from], $line_parts[$to] );
+ if ( $opt_vertical ) {
+ foreach my $i ( 0 .. int(($to-$from)/2) ) {
+ my $t = $line_parts[$from + $i];
+ $line_parts[$from + $i] = $line_parts[$to - $i];
+ $line_parts[$to - $i] = $t;
+ }
+ }
+}
+
+my $from;
+my $to;
+foreach my $i ( 0 .. $#line_parts ) {
+ next if $line_parts[$i]->[0] =~ m/^###/;
+ if (exists $line_parts[$i]->[1]) {
+ if (! $from) {
+ $from = $i;
+ } else {
+ $to = $i;
+ }
+ } elsif ($from && $to) {
+ connector $from => $to;
+ $from = $to = undef;
+ }
+}
+connector $from => $to if $from && $to;
+