Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7821[/thread]

chomp nicht nur für ein \n sondern unendlich viele



<< |< 1 2 3 >| >> 30 Einträge, 3 Seiten
gregor
 2006-03-23 11:52
#63979 #63979
User since
2006-02-03
24 Artikel
BenutzerIn
[default_avatar]
hallo, mit chomp wird das letzte \n einer zeile entfernt. was tue ich denn, wenn nun z.b. unendlich viele \n am ende sind, die alle entfernt werden sollen? tausend dank.
renee
 2006-03-23 11:57
#63980 #63980
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
$string =~ s/\n+$//s;\n\n

<!--EDIT|renee|1143107860-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
mho
 2006-03-23 11:57
#63981 #63981
User since
2003-09-12
30 Artikel
BenutzerIn
[default_avatar]
evtl mit einem regexp:

Code: (dl )
1
2
3
my $s = "hallo welt\n\n\n\n";
$s =~ s/\n+$//;
print $s;
gregor
 2006-03-23 12:17
#63982 #63982
User since
2006-02-03
24 Artikel
BenutzerIn
[default_avatar]
DANKE!!!
esskar
 2006-03-23 13:15
#63983 #63983
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wenn du es richtig(er) machen willst, dann geht das so

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use strict;

sub chomp_all {
my $count = 0;
foreach (@_) {
++$count while $_ =~ s!$/$!!;
}
return $count;
}

# test

my $s = "xxxxx\n\n\n\n\n\n";
chomp_all($s);
print "[$s]";
renee
 2006-03-23 13:21
#63984 #63984
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wieso richtiger?? In $/ kann etwas ganz anderes drin stehen. Es muss nicht immer ein \n sein.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
esskar
 2006-03-23 13:25
#63985 #63985
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=renee,23.03.2006, 12:21]Wieso richtiger?? In $/ kann etwas ganz anderes drin stehen. Es muss nicht immer ein \n sein.[/quote]
weil chomp auch $/ nimmt und nicht \n
Das wissen, aber nicht alle (dich nehm ich jetzt mal aus dieser Gruppe). Und da die Frage auch auf chomp zielte, bezeichne ich meine Funktion als "richtiger".
gregor
 2006-03-24 14:22
#63986 #63986
User since
2006-02-03
24 Artikel
BenutzerIn
[default_avatar]
für meine kleinen zwecke reicht auch ersteres. ich bin ja froh, dass hier überhaupt was läuft ;) trotzdem dank. eine bescheidene frage noch: (vielleicht ist das das falsche forum...:) kann es sein das perl ausstirbt? sollte ich als anfänger lieber gleich mit php anfangen? ;) php vs. perl? danke. (bitte mich nicht beschimpfen :)
renee
 2006-03-24 15:09
#63987 #63987
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wir hatten hier schon mehrfach die Diskussion PHP vs. Perl. Ich bitte darum, die Diskussionen auf die jeweiligen Threads zu beschränken:

http://board.perl-community.de/cgi-bin....;t=2332
http://board.perl-community.de/cgi-bin....=0;t=42
http://board.perl-community.de/cgi-bin....0;t=227
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
sid burn
 2006-03-30 00:08
#63988 #63988
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
[quote=esskar,23.Mar..2006, 12:25][quote=renee,23.03.2006, 12:21]Wieso richtiger?? In $/ kann etwas ganz anderes drin stehen. Es muss nicht immer ein \n sein.[/quote]
weil chomp auch $/ nimmt und nicht \n
Das wissen, aber nicht alle (dich nehm ich jetzt mal aus dieser Gruppe). Und da die Frage auch auf chomp zielte, bezeichne ich meine Funktion als "richtiger".[/quote]
Hi,

also ich kreide die richtigkeit deiner Aussage etwas an.

Im Kamel Buch unter "Portables Perl" wird gerade eben gesagt das "\n" nicht wirklich nur "\n" ist, sondern allgemein ein Zeilenvorschub. Ein Zeilenvorschub ist je nach verwendetem System etwas anderes.

So Soll unter MacPerl ein "\n" == "\015" bedeuten. Bei DOS-basierten Perl Versionen ist "\n" == "\015\012", und bei Unix ist "\n" traditionell "\012". Ein Zeichen mehrere Bedeutungen.

Es wird sogar gesagt das bei der Socket Programmierung explizit die Verwendung von "\n" vermieden werden soll.

print SOCKET "Hallo, Client!\015\012"; #richtig
print SOCKET "Hallo, Client!\r\n"; #falsch

So steht es jedenfalls im Kamel Buch unter "Portables Perl" 4. oder 3. Auflage (Ich weiß ehrlich nicht welche Auflage das sein soll). S.643

Von daher würde ich einfach sagen das dein Code auch richtig ist, nur etwas komplizierter für die gleiche Aufgabe. Sofern ich mich da jetzt nicht täusche.

Und jetzt könnt ihr mich Steinigen. ;)\n\n

<!--EDIT|sid burn|1143662984-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
<< |< 1 2 3 >| >> 30 Einträge, 3 Seiten



View all threads created 2006-03-23 11:52.