Perl ler arquivo retornando apenas linhas parciais

0

Estou tentando escrever um script para renomear arquivos com base em uma determinada lista. Para testar se a lista está correta, eu tenho:

print("start\n");
open(READFILE, "<prune.txt") || die "Couldn't open file";
print("file open\n");
while ($curline = <READFILE>){

print "$curline\n";
}
close (READFILE);

se o meu arquivo de lista for

P_4
IMG_0531
PICT0009
IMG_0416
RAY HASSMAN GROUP 015
P_5

então minha saída é

P_5 HASSMAN GROUP 015

Por que estou recebendo essa bagunça estranha?

Como perguntado aqui está o hex dump do meu arquivo de entrada

0000: 50 5F 34 0D 49 4D 47 5F   P_4¬IMG_
0008: 30 35 33 31 0D 50 49 43   0531¬PIC
0010: 54 30 30 30 39 0D 49 4D   T0009¬IM
0018: 47 5F 30 34 31 36 0D 52   G_0416¬R
0020: 41 59 20 48 41 53 53 4D   AY HASSM
0028: 41 4E 20 47 52 4F 55 50   AN GROUP
0030: 20 30 31 35 0D 50 5F 35    015¬P_5

Estou usando o Mac 10.9.2 build 13c39

    
por traisjames 18.01.2014 / 22:11

1 resposta

0

Em vez de caracteres de término de linha, seu script produz "\r" caracteres que movem o cursor para a posição mais à esquerda, mas não avançam uma linha. Portanto, todas as informações estão sendo substituídas repetidas vezes. Não consigo imaginar como isso pode acontecer com o literal "\n" no código - você tem certeza de que o código que você postou produz a saída? Qual sistema operacional você está? Você pode postar um hexdump do arquivo de entrada?

    
por 19.01.2014 / 00:59

Tags