Also note that <READ1>.<READ2> doesn't check for the definedness of both the return values.
Moreover, chomping a line to append \n to it in the next line is useless. Chomping a file name after having used it makes no sense, chomp it before you use it, and use 3-arg open (which doesn't remove whitespace from its 3rd argument).
Don't rewind the second file after having rewound the first one, otherwise you'll get an infinite loop.
#!/usr/bin/perl use warnings; use strict; chomp( my $input1 = <> ); chomp( my $input2 = <> ); my $output = 'output.txt'; open my $READ1, '<', $input1 or die "Cannot open $input1: $!.\n"; open my $READ2, '<', $input2 or die "Cannot open $input2: $!.\n"; open my $WRITE, '>', $output or die "Cannot open $output: $!.\n"; my $rewound = 0; until ($rewound == 1 && eof $READ2 || $rewound == 2 && eof $READ1 ) { my $line = <$READ1> . <$READ2>; if (eof $READ1 && $rewound != 2) { seek $READ1, 0, 0; $rewound = 1; } elsif (eof $READ2 && $rewound != 1) { seek $READ2, 0, 0; $rewound = 2; } print {$WRITE} $line; } close $WRITE; print "done\n";
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
In reply to Re: writing two files (different in length) to one output
by choroba
in thread writing two files (different in length) to one output
by ic23oluk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |