Thread $/ Windows/Linux Zeilenumbruch (1 answers)
Opened by Froschpopo at 2007-09-06 23:28

Linuxer
 2007-09-07 00:00
#99163 #99163
User since
2006-01-27
3881 Artikel
HausmeisterIn

user image
Wenn das Skript unter Linux läuft, würde ich schon im WinDOS darauf achten, dass die Linebreaks entsprechend gesetzt werden.
Spätestens beim Übertragen (FTP ascii mode) kann man das säubern.
Ansonsten hilft die Verwendung von recode auf der Kommandozeile.

Oder man baut sich einen entsprechenden Code ins Skript, der z.B. anhand von des unbehandelten $words[0] bestimmt, welcher Umbruch vorliegt und anschliessend in einem Block eine lokalisierte Variable $/ entsprechend setzt, um dann chomp aufzurufen; Schema mit anteiliger Denksportaufgabe (TODO):

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/perl
# vi:ts=4 sw=4 et:
use strict;
use warnings;

my $msg = "Mein Auto ist defekt, darum nutz ich das fahrrad.";

my @words = <DATA>;

# TODO: am Zeilenende darf kein normales Leerzeichen, Tab, o.ä. auftauchen
# man sollte \s auch durch die passenden Hex- oder Octal-Werte in einer Klasse ersetzen
if ( $words[0] =~ m/(\s+)$/ ) {
local $/=$1;
chomp @words;
}

my $found = 0;
for my $word (@words) {

$word = quotemeta($word);
$found = 1 if $msg =~ /$word/;
}

print "Ergebnis: $found\n";


__DATA__
Auto
Fahrrad
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread $/ Windows/Linux Zeilenumbruch