WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 07.10.2002, 10:37   #1
PredeX
Senior Member
 
Registriert seit: 03.09.2001
Alter: 41
Beiträge: 165


Standard Perl - Frage: Die Zweite...

Code:
#!/usr/bin/perl -w

#Text anhand Whitespace aufteilen
while(defined($zeile=<>)){
   chomp $zeile;
   my @word = split( m/\s/, $zeile);

  foreach (@word){
     s/\W/ /g; #nichtwortzeichen in $_ entfernen
     next if $_ eq ' ';
     $hash{$_}++; #Wert um eins erhöhen
  }
 }

foreach(sort { $hash{$b} <=> $hash{$a} } keys %hash){
    print "$_ -> $hash{$_}\n";
  }
Was genau bedeutet: m/\s/ und s/\W /g ?? Wo find ich da eine Liste oder Erklärungen?


MfG
Sebastian Gabmeyer aka PredeX
____________________________________
There are 10 types of people, those who understand binary and those who don\'t...

Ask Me No Questions, And I Tell You No Lies!
PredeX ist offline   Mit Zitat antworten
Alt 07.10.2002, 11:29   #2
PredeX
Senior Member
 
Registriert seit: 03.09.2001
Alter: 41
Beiträge: 165


Standard

Aja und da wäre noch was:

Code:
while(defined($zeile=<> )){
   chomp $zeile;
was wird durch das defined überprüft, sprich wie stellt er fest ab wann der Ausruck false ist?

Und...
Code:
  foreach (@word){
     s/\W/ /g; #nichtwortzeichen in $_ entfernen
     next if $_ eq ' ';
     $hash{$_}++; #Wert um eins erhöhen
Wieso wird $hash{$_}++ inkrementiert?? Is das notwendig, und wenn ja: wieso??

MfG
PredeX
____________________________________
There are 10 types of people, those who understand binary and those who don\'t...

Ask Me No Questions, And I Tell You No Lies!
PredeX ist offline   Mit Zitat antworten
Alt 07.10.2002, 11:49   #3
mcs_
Elite
 
Registriert seit: 26.06.2001
Alter: 54
Beiträge: 1.351


Standard Re: Perl - Frage: Die Zweite...

Zitat:
Original geschrieben von PredeX
...
Was genau bedeutet: m/\s/ und s/\W /g ?? Wo find ich da eine Liste oder Erklärungen?
...

bin kein meister, aber ich glaub, \s bedeutet "whitespace", also leerzeichen und tab und zeilenumbruch.

\W bedeutet "kein zeichen" - der großbuchstabe bedeutet immer das gegenteil vom kleinbuchstaben.
mcs_ ist offline   Mit Zitat antworten
Alt 07.10.2002, 14:13   #4
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard Re: Perl - Frage: Die Zweite...

Zitat:
Original geschrieben von PredeX

Was genau bedeutet: m/\s/ und s/\W /g ?? Wo find ich da eine Liste oder Erklärungen?
"perldoc -q regex"
"perldoc perlop"
Zitat:
\w Match a "word" character (alphanumeric plus "_")
\W Match a non-"word" character
Zitat:

Code:
while(defined($zeile=<> )){
   chomp $zeile;
was wird durch das defined überprüft, sprich wie stellt er fest ab wann der Ausruck false ist?
CTRL-D bzw. EOF (end of file)

Zitat:
Code:
  foreach (@word){
     s/\W/ /g; #nichtwortzeichen in $_ entfernen
     next if $_ eq ' ';
     $hash{$_}++; #Wert um eins erhöhen
Wieso wird $hash{$_}++ inkrementiert?? Is das notwendig, und wenn ja: wieso??
AFAIK zehlt er damit mit, wie oft ein wort vorkommt. Du koenntest auch einfach "= 1" hinschreiben.
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:47 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag