Schrift
[thread]7821[/thread]

chomp nicht nur für ein \n sondern unendlich viele (Seite 3)



<< |< 1 2 3 >| >> 30 Einträge, 3 Seiten
Linuxer
 2006-03-30 18:24
#63999 #63999
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
perldoc perlport

Dort steht in der regulären Dokumentation das passende zu Newlines ;o)
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!
Crian
 2006-03-31 13:59
#64000 #64000
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
ich würd es ja "noch richtiger" (*duck*) so machen

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub chomp_all {
my ($var) = @_;

my $old = '';

while ($var ne $old) {
$old = $var;
chomp $var;
}

return $var;
}
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pq
 2006-03-31 15:19
#64001 #64001
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=Crian,31.03.2006, 11:59]ich würd es ja "noch richtiger" (*duck*) so machen

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub chomp_all {
   my ($var) = @_;

   my $old = '';

   while ($var ne $old) {
       $old = $var;
       chomp $var;
   }

   return $var;
}
[/quote]
man kann es sich aber auch kompliziert machen...
perldoc -f chomp: "It returns the total number of characters removed"
Code: (dl )
1
2
3
4
5
sub chomp_all {
 my ($var) = @_;
 1 while chomp($var);
return $var;
}
\n\n

<!--EDIT|pq|1143804003-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Crian
 2006-03-31 15:45
#64002 #64002
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Lustig, genau das hatte ich vor, hab dann bei perldoc -f chomp nachgesehen, ob es wirklich die Anzahl entfernter Zeichen zurück gibt, hab das nicht gefunden und dann obiges gebaut. Wer lesen kann ist klar im Vorteil. Und dabei ist der Perldocabschnitt nichtmal lang =)

Wenigstens hab ich noch was gelernt beim Nachlesen: If VARIABLE is a hash, it chomps the hash's values, but not its keys.\n\n

<!--EDIT|Crian|1143805654-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
esskar
 2006-03-31 16:31
#64003 #64003
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hmm

Code: (dl )
1
2
3
4
5
6
7
8
sub chomp_all {
my $retval = 0;
foreach (@_) {
my $count;
1 while chomp($_) && $retval += $count;
}
return $retval;
}
GwenDragon
 2006-03-31 16:52
#64004 #64004
User since
2005-01-17
14837 Artikel
Admin1
[Homepage]
user image
Kann chomp nicht CORE::chomp überschreiben?
Dann bräuchte es kein chomp_all mehr.
pq
 2006-04-03 13:04
#64005 #64005
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=esskar,31.03.2006, 14:31]hmm

Code: (dl )
1
2
3
4
5
6
7
8
sub chomp_all {
  my $retval = 0;
  foreach (@_) {
     my $count;
     1 while chomp($_) && $retval += $count;
  }
  return $retval;
}
[/quote]
das klappt nicht. du setzt $count nicht und $retval += $count
liefert außerdem immer true, sobald $retval > 0 ist.
Code: (dl )
1
2
3
4
5
6
7
8
sub chomp_all {
  my $sum = 0;
  foreach (@_) {
     my $c;
     $sum+= $c while $c = chomp;
  }
  return $sum;
}
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
esskar
 2006-04-03 13:31
#64006 #64006
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
irgendwie hab ich mich selbst verwirrt.
So wie du es hast, hab ich es zumindest gemeint! :)
murphy
 2006-04-03 16:46
#64007 #64007
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
[quote=Dubu,29.03.2006, 21:56][...]
Ich habe leider keinen Mac, aber mich würde schon interessieren, ob man bei Apple mit dem Umstieg auf MacOS X und damit ein Unix-basiertes System auch von <CR> als Zeilentrenner auf <LF> umgestellt hat - und was ein aktuelles Perl auf dem Mac (im Vergleich zu "MacPerl") intern aus "\n" macht.[/quote]
Das ist alles ein wenig seltsam unter MacOS X, aber im Endeffekt nicht schlecht gelöst. Für das mitgelieferte Perl gilt jedenfalls, dass es sich komplett wie unter anderen Unices verhält. Das stimmt auch für die meisten anderen neuen Programme, aber manche Programme, die schon länger existieren, benutzen immer noch CR als Zeilentrennzeichen. Zum Beispiel muss man ein bischen aufpassen, wenn man mit AppleScript arbeitet, weil dann an den unmöglichsten Stellen hin und her konvertiert wird, sofern man es nicht explizit ausschaltet.
When C++ is your hammer, every problem looks like your thumb.
Dubu
 2006-04-03 17:17
#64008 #64008
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Interessant. Danke, murphy.
<< |< 1 2 3 >| >> 30 Einträge, 3 Seiten



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