my $output='$std | dot |$data| dot '."\n"; while(<>) { my $std = $_; my $std_dot = $.; my $data = ; my $data_dot = $.++; chomp $std; chomp $data; last if $std eq '.'; $output.=sprintf "%4s |%4s |%4s |%4s\n", $std, $std_dot, $data, $data_dot; } print $output; __DATA__ a b c d e #### a b c d e . $std | dot |$data| dot a | 1 | a | 1 b | 2 | b | 3 c | 3 | c | 5 d | 4 | d | 7 e | 5 | e | 9 #### my $output='$std | dot | $r1 |$data| dot | $r2 '."\n"; while(<>) { my $std = $_; my $std_dot = $.; my $data = ; my $data_dot = $.++; chomp $std; chomp $data; my ($r1, $r2); if( ($r1 = $data =~ /a/ .. $data =~ /e/) && ($r2 = $std =~ /a/ .. $std =~ /e/) ) { $output.=sprintf "%4s |%4s |%4s |%4s |%4s |%4s \n", $std, $std_dot, $r1, $data, $data_dot, $r2; } else { last; } } print $output; __DATA__ a b c d e #### a b c d e f $std | dot | $r1 |$data| dot | $r2 a | 1 | 1 | a | 1 | 1 b | 2 | 2 | b | 3 | 2 c | 3 | 3 | c | 5 | 3 d | 4 | 4 | d | 7 | 4 e | 5 | 5E0 | e | 9 | 5E0