Here's a list I have compiled of corrections to the codes and text in the "Teach Yourself PERL in 21 Days": The title is incorrect, the book should be titled "Teach yourself PERL in 21 Weeks." ;-) CHAPTER 4: -Listing 4.1 line 7 $exponent = ; should read $exponent = ; CHAPTER 5: -Listing 5.8 line 5 @subarray = @array(@range); should read @subarray = @array[@range]; CHAPTER 8: -Listing 8.11 $total is 10, not 9 if you use his input. The error is on line 6 of Listing 8.11. Notice that the pattern to match in the substitution is: "one or more tabs or spaces followed by a single newline at the end of the line".In reality he wants ZERO or more tabs or spaces followed by a newline at the end of the line, in order to have the pattern match *every* time and therefore get rid of the newline every time. OR he could have put the '\n' inside of the [] so the pattern would match every time and remove the newline every time. So the fix is: line 6 $line =~ s/{/t ]+n$//; should read $line =~ s/[\t ]*\n$//; #first option OR $line =~ s/[\t \n]+$//; #second option -Listing 8.13 same problem as 8.11. Correct line 8. line 9 if (line ne "") { should read if ($line ne "") { line 15 }; This is fine. the semi-colin, when not needed is ignored. The line could read };;;;;;; and would still work. CHAPTER 9: -Listing 9.10 line 7,8,9 The order of these is messed up. The correct order is either: 9,8,7 OR 8,7,9. The extraneous whitespace _must_ be removed before doing the character count. -Listing 9.11 line 20,21,22 Same thing as listing 9.10. Make it 22,21,20 OR 21,20,22. line 23 last if ($linecount == 3); should read last if ($linecount == $numline); The variable $numline is set, but never used if you don't change this line. That's it so far. I didn't find any errors through Chapter 12. After that, I only used the book for reference. I have the listings (programs) in the book (and a few others) at: http://oz.uc.edu/~solkode/.scripts/ (I don't know if they contain the fixes, and a couple _do_ have typos and don't work (R1.1 and 10.1 come to mind)). Thanks to Robert C. Knauer for some of the solutions. If you find any others, please let me know.