答复: A challenge to explain the strange results (under linux)

2008-06-11 Thread Zhu Shanshan
Thanks.
As you said, when I substituted "s/\r\n$//" with "chomp", it did work. After
looking up the explanation of "chomp" in perldoc, I found "chomp", which I
always used to remove the newline previous, removes any trailing string that
corresponds to the current value of "$/". And this time, it removed "\n" for
me. I'm really puzzled by this phenomena, because I always work with
"chomp". I guessed the problem came from the new SFTP software used
recently. Then I compared it with WinSCP using the same script. Bingo!
WinSCP has deleted "\r" for me and that's why I could luckily work,
previous.

Anyway, thank you again!


-邮件原件-
发件人: Ronald J Kimball [mailto:[EMAIL PROTECTED] 
发送时间: 2008年6月12日 12:28
收件人: Zhu Shanshan
抄送: Perl Golf
主题: Re: A challenge to explain the strange results (under linux)

I would bet that your color.txt file has Windows line endings on all
platforms.  If you do this:

  perl test.pl color.txt | less

you may find that you're getting output after all.


Make sure color.txt has Unix line endings on the Linux machines.  Here's
one way to fix it:

  perl -pi -e 'tr/\r//d' color.txt

Ronald




Re: A challenge to explain the strange results (under linux)

2008-06-11 Thread Ronald J Kimball
I would bet that your color.txt file has Windows line endings on all
platforms.  If you do this:

  perl test.pl color.txt | less

you may find that you're getting output after all.


Make sure color.txt has Unix line endings on the Linux machines.  Here's
one way to fix it:

  perl -pi -e 'tr/\r//d' color.txt

Ronald


A challenge to explain the strange results (under linux)

2008-06-11 Thread Zhu Shanshan
I used perl "v5.8.5 built for i386-linux-thread-multi".

 

My data:

# File:color.txt

chartreuse

deeppink

goldenrod

lightblue

dodgerblue

darkgoldenrod

 

My scripts:

# File: test.pl

use strict;

use warnings;

open IN,"color.txt" or die;

while (){

 chomp;

 print "$_";

}

close IN;

 

Results under linux platform(Nothing):

"Linux compome 2.6.12-1.1381_FC3smp #1 SMP Fri Oct 21 04:03:26 EDT 2005 i686
i686 i386 GNU/Linux"  RedHat

"Linux biome 2.6.9-55.ELsmp #1 SMP Fri Apr 20 16:36:54 EDT 2007 x86_64
x86_64 x86_64 GNU/Linux"   RedHat

"Linux hanlab 2.6.16.46-0.12-smp #1 SMP Thu May 17 14:00:09 UTC 2007 i686
i686 i386 GNU/Linux"  OpenSUSE

# command: perl test.pl

 

 

Results under Microsoft Windows XP (in my expectation):

# command: d:\soft\bin\perl.exe test.pl

Chartreusedeeppinkgoldenrodlightbluedodgerbluedarkgoldenrod

 

 

It's not really a Perl challenge. But can anyone give me some help or
suggestions?

Thanks in advance

 

Shanshan Zhu