Perl for System Administration by David N. Blank-Edelman The following are changes made in the 8/00 reprint: (12) "Rain Forrest Puppy" now reads "Rain Forest Puppy." {21} "Sub ScanDirectory{" now begins with a lowercase "s" as in "sub ScanDirectory{." {23} subroutine CheckFile: the line: my $r=sysread(T,$t,1); now reads: my $r=sysread(T,$i,1); because the loop variable is $i, not $t. (28) Table 2-2 caption: has a spurious "MacOS" in it (bad search and replace?). It now reads: Table 2.2 File::Find Variables {45} 1st paragraph: The getpwent() and associated user functions return two additional fields ($quota, $comment) which are just before $gcos. A footnote was inserted on this page. The footnote marker is after the colon in "let's look at the fields our code returns:". The footnote text: The values returned by getpwent() changed between Perl 5.004 and 5.005; this is the 5.004 list of values. In 5.005 and later, there are two additional fields, $quota and $comment, in the list right before $gcos. See your system documentation for getpwent() for more information. {177} Table 6-1 now states that Net::LDAP does support SSL. [182] To be strictly RFC-compliant, the filter (&(sn=Finkelstein)(!l=Boston)) now reads (&(sn=Finkelstein)(!(l=Boston))) {187} last code line on the page: $ldif = new Net::LDAP::LDIF($filename); now reads: $ldif = new Net::LDAP::LDIF($filename,"w"); <189-190> second bullet now reads: If the add() fails, we request a decimal error code. For instance, we may see our code print something like this: Error in add for cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of Michigan, c=US: error code 68 If the server returns a textual message, the error() method retrieves it for us, just like the error reporting code we used with Mozilla::LDAP: print "The error message is: ".$res->error."\n"; It is safer to test the return value of code, as we do in the previous example, because LDAP servers don't always populate the textual error message information in their replies. If you need to convert a decimal error code to an error message or message name, the Net::LDAP::Util module offers two routines for this purpose: ldap_error_text() and ldap_error_name(). {299} 3rd line: Win32::EventLog::GetMessageText = 1; is now prefaced with a dollar sign, like so: $Win32::EventLog::GetMessageText = 1;