> The first one does weird stuff

Looks like -i only works with '<>', not with '<FILE>' (though I could
not find that documented).

> Can you tell me how to change the first one to make it work?

If you really need to do that, try 'open(STDIN,$filetobechanged)'
instead. Then, 'while(<>)' instead of 'while(<FILE>)' and 'print'
instead of 'print FILE'.


Side notes: always use strict :-)

Oh, and if you're just trying to remove \n's, try chomp instead of that
substitution :-) much, much faster :-)

And there are even easier ways, like this one :-)

#!/usr/bin/perl -wl0pi

Right, no code needed :-) The switches do it all :-) Give it a try :-)

HTH

jac

On Mon, 2004-05-10 at 05:22, Timothy Duke wrote:
> Hi,
> 
> I have got two versions of a script to eliminate single line-feeds from 
> a file.  The first one does weird stuff - duplicating lines and messing 
> the text file up.  The second one works (I copied it from a Perl guide), 
> but I don't understand why.  I would much prefer the first one to work - 
> Can you tell me how to change the first one to make it work?
> 
> Also, I understand that the <> operator reads in one line at a time.  If 
> I wish to eliminate only triple line-feeds (\n\n\n) and leave double and 
> single linefeeds, I presume <> won't work.  Without reading in the whole 
> file at once, how can I achieve this?
> 
> I am using MacPerl.
> 
> Thanks for any help!
> 
> Tim
> 
> ----------------------------------------------------
> 
> Version #1 (works dreadfully....stuffs up the file)
> 
> #! perl  -w -i
> $filetobechanged = "iBook HD:Desktop Folder:tim.txt";
> open(FILE, "+< $filetobechanged") ;
> while (<FILE>) {
>      s/\n//g;
>      print FILE ;
>          }
> close(FILE);
> 
> 
> Version #2 (works fine)
> $filetobechanged = "iBook HD:Desktop Folder:tim.txt";
> @ARGV = ($filetobechanged);
> $^I = ".bak";
> while (<>) {
>      s/\n//g;;
>      print;
> }
-- 
Josà Alves de Castro <[EMAIL PROTECTED]>
Telbit - Tecnologias de InformaÃÃo


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to