Thread integer und split
(3 answers)
Opened by nano at 2015-04-05 02:26
Ich sag dir, wie es ohne split geht:
Code (perl): (dl
)
1 2 3 my $wort = 'abbbattaaajqaAAAgtAWG'; my $anzahl = $wort =~ y/a/a/; print "Das Wort $wort enthält das Zeichen 'a' $anzahl mal.\n"; Weil ich gerade Zeit hatte, habe ich deinen Code einmal kommentiert (ich werde dir keine fertige Lösung mit split schreiben): Code (perl): (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 30 31 32 33 34 35 $| = 1; #wozu diese Zeile? use strict; use warnings; # das würde ich schon in 2 Zeilen schreiben print "exercise 4\n"; print "please enter a word:"; chomp (my $word = <STDIN>); my $letter = "g/i"; # Letter klingt nach einem Buchstaben, nicht nach 3 while (<>) { # wozu diese Loop? Und warum benennst du die Loop-Variable nicht? # Was soll der Benutzer denn eingeben? # $_ sollte man höchstens in der innersten Loop verweden, und auch nur, # wenn diese kurz ist (max 1 oder allerhöchstens 2 Zeilen) chop; # warum hier dann kein chomp? foreach $letter (split) { # Split ohne Argumente? Was splittest du hier? # Du splittest in die Variable $letter, deine Vorbelegung von $letter war # also nutzlos?! if ($letter eq $word) { # Das macht doch nur gar keinen Sinn. Ein Buchstabe eines Wortes # soll gleich dem ganzen Wort sein? Das kann nur für einbuchstabige # Wörter wie das englische "a" oder das niederländische "U" funktionieren! print "$_\n"; # "my" hier? Damit wäre die Variable hinter der } verloren! my $score ++; } } } print " number of A in word: $score\n" # das kann doch nicht mal Kompilieren, weil es die Variable hier nicht mehr gibt |