Ryan Dillinger am Sonntag, 6. August 2006 23:05: > Hello all, Hello Ryan
> I was wondering if someone could explain lines: 14, 17, 18, 21, 27, and > 43 please. I understand the bulk of the script. But to put it all > together would better. Thanks so much! > > 1. #!/usr/bin/perl > 2. # hangman.pl > 3. use warnings; Not requested answer: use strict; is missing, and the declarations of variables throughout the script. > 4. > 5. @words = qw(internet cyber groups information); > 6. @guesses = (); > 7. $wrong = 0; > 8. > 9. $answers = $words[rand @words]; > 10. $hangman = "0-|--<"; > 11. > 12. @letters = split(//, $answers); > 13. @hangman = split(//, $hangman); > 14. @blankword = (0) x scalar(@letters); To find out yourself: print join ',', @blankword; @blankword contains as many entries with '0' as there are entries in @letters. perldoc -f scalar perldoc perldata > 15. OUTER: > 16. while ($wrong < @hangman) { > 17. foreach $i (0..$#letters) { $i takes the range 0 to the highest index of @letters. $#letters == scalar(@letters)-1. perldoc perldata > 18. if ($blankword[$i]) { true if @blankword contains a true value at index position $i. > 19. print $blankword[$i]; > 20. } else { > 21. print "-"; unnecessary use of double quotes ;-) > 22. } > 23. } > 24. print "\n"; > 25. > 26. if ($wrong) { > 27. print @hangman[0..$wrong-1] This is an array slice: entries at index positions 0..$wrong-1 of @hangman. perldoc perldata > 28.} > 29.print "\n Your Guess: "; > 30. $guess = <STDIN>; chomp $guess; > 31. foreach(@guesses) { > 32. next OUTER if ($_ eq $guess); > 33.} > 34. [EMAIL PROTECTED] = $guess; > 35. $right = 0; > 36. for ($i = 0; $i < @letters; $i++) { > 37. if ($letters[$i] eq $guess) { > 38. $blankword[$i]= $guess; > 39. $right = 1; > 40. } > 41.} > 42. $wrong++ if (not $right); > 43. if (join('', @blankword) eq $answers) { Compares the concatenated entries of @blankword with the content of $answers. perldoc -f join perldoc perlop > 44. print "You got it right!\n"; > 45. exit; > 46. } > 47. } > 48. print "$hangman\nSorry, the word was $answers.\n"; Dani -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>