The EOLN character is not being stripped out, so you're getting it before 
your quote. chomp it to remove it. Here's my version:

#!/usr/bin/perl -w

use strict;
open INFILE, "accounts.txt" or die "Can't open INFILE: $!";
open OUTFILE, ">nospace.txt" or die "Can't open OUTFILE: $!";
while (<INFILE>) {
    chomp;  
    ($line=~/ /) ? (print OUTFILE "\"$_\"\n") :
                   (print OUTFILE "$_\n");
}
close INFILE;
close OUTFILE;

Pete

On Thu, 6 Mar 2003, Carrara, Greg wrote:

> Hello,
> I'm trying to write a script that reads a file line by line and if the line
> contains a space it puts quotation marks around it and writes it to another
> file.  I mostly have this working except that in the case of the lines that
> contain the space it puts the quotation mark at the beginning of the next
> line.  My guess is that
>  print OUTFILE ($line);
> also feeds a CR.  Is there a way around this?
> thanks,
> gc
> 
> 
> 
> 
> unless (open(INFILE, "accounts.txt")) {
> 
>         die ("Cannot open input file accounts.txt.\n");
> }
> 
> unless (open(OUTFILE, ">nospace.txt")) {
> 
>         die ("Cannot open output file nospace.txt.\n");
> }
> 
> $line = <INFILE>;
> 
> while ($line ne "") {
> 
> if ($line =~ / +/) {
>      print OUTFILE ('"');
>      print OUTFILE ($line);
>      print OUTFILE ('"');
> }
> else {
>      print OUTFILE ($line);
> }
> 
> $line = <INFILE>;
> 
> }
> }
> 
> 

-- 
http://emerson.wss.yale.edu/perl
Pete Emerson
WSS AM&T Yale University


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to