[EMAIL PROTECTED] wrote:
The following script is to read 4 consecutive lines at a time from a
file, concatenate the first 3 lines
(with a ", "), and print the result to STDOUT. If the 3 lines aren't
concatenated they print correctly, however
if they are, the result is gibberish. Any suggestions. thx., EC.
I tried your program and I don't see where the problem lies? If you
could show what the output is supposed to look like and what the actual
output looks like?
--------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/perl
use warnings;
use strict;
# Read a series of 4 rows from a file and print the first 3 on
# the same line.
$file = 'example.txt'; # Name the file
my $file = 'example.txt';
open(INFO, $file); # Open the file
You should *always* verify that the file opened correctly:
open INFO, '<', $file or die "Cannot open '$file' $!";
$row_num = 0;
while (<INFO>) {
$i = $row_num%4;
Why not just use Perl's built-in $. variable?
perldoc perlvar
if ($i <= 2) {
$col[$i] = "$_";
}
if ($i <= 1) {
chomp ($col[$i]);
}
if ($i == 2) {
#$row = join (', ', @col);
printf ("%s", $col[0]);
printf (", ");
printf "%s, ", $col[1];
printf "%s\n", $col[2];
You don't really need printf there:
print "$col[0]";
print ", ";
print "$col[1], ";
print "$col[2]\n";
Or simply:
print "$col[0], $col[1], $col[2]\n";
}
$row_num++;
}
close(INFO); # Close the file
John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order. -- Larry Wall
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/