[Vienna-pm] Zeilenumbruch ersetzen

Wolfgang Laun wolfgang.laun at gmail.com
Sat Dec 6 12:52:22 PST 2008


On Sat, Dec 6, 2008 at 12:55 PM, Fabio Valeri <fabio.valeri at bluewin.ch>wrote:

> Ich habe die kleine Änderung (binmode()) durchgeführt und nun klappt es.
> Verstanden habe ich es zwar nicht,


In perlfunc wird zu binmode() erklärt, dass DOS&Co \r\n als Zeilenbegrenzung
im File stehen haben, was aber von der I/O-Library zur Herstellung der
Portabilität für Perl-Programme (wie auch in C und sonstwo) in \n
umgewandelt wird. Ergo ist ein sonstiges \n aus dem File dann programmintern
nicht mehr von einem solchen Umwandlungsergebnis zu unterscheiden.

Durch binmode() wird die o.a. Umwandlung unterdrückt, wonach aber die
explizite Angabe von \r\n im Verbund mit dem Operator <> trotzdem eine
Verarbeitung a la Text-File ermöglicht.



>
> Besten Dank für Eure Hilfe.
>
> Gruss
>
> Fabio
>
> Wolfgang Laun schrieb:
>
>> Josef Schmid hat recht, binmode ist auch noch notwendig.
>>
>> open( INPUT, "some.csv" );
>> binmode( INPUT );
>> $/ = "\r\n";
>> while( my $row = <INPUT> ){
>>  chomp($row);
>>  $row =~ s/\n/xxx/g;
>>  print "$row<tr>\n";
>> }
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/vienna-pm/attachments/20081206/d74f44bc/attachment.html>


More information about the Vienna-pm mailing list