X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperltie.pod;h=4befdaeee671d7b2bd65d2c30fa1549ec8105161;hb=363c40c40eaf5d0cfd92f460a3f838c41f9756ad;hp=3665f0420e57119c45182d1432eca7442dbb20ff;hpb=126c71c82576d5dc652db25ca9e3f8e18442c4fd;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perltie.pod b/pod/perltie.pod index 3665f04..4befdae 100644 --- a/pod/perltie.pod +++ b/pod/perltie.pod @@ -794,9 +794,16 @@ READ, and possibly CLOSE, UNTIE and DESTROY. The class can also provide: BINMOD OPEN, EOF, FILENO, SEEK, TELL - if the corresponding perl operators are used on the handle. -It is especially useful when perl is embedded in some other program, -where output to STDOUT and STDERR may have to be redirected in some -special way. See nvi and the Apache module for examples. +When STDERR is tied, its PRINT method will be called to issue warnings +and error messages. This feature is temporarily disabled during the call, +which means you can use C inside PRINT without starting a recursive +loop. And just like C<__WARN__> and C<__DIE__> handlers, STDERR's PRINT +method may be called to report parser errors, so the caveats mentioned under +L apply. + +All of this is especially useful when perl is embedded in some other +program, where output to STDOUT and STDERR may have to be redirected +in some special way. See nvi and the Apache module for examples. In our example we're going to create a shouting handle. @@ -1065,6 +1072,21 @@ modules L, L, L, or L. =head1 BUGS +The bucket usage information provided by C is not +available. What this means is that using %tied_hash in boolean +context doesn't work right (currently this always tests false, +regardless of whether the hash is empty or hash elements). + +Localizing tied arrays or hashes does not work. After exiting the +scope the arrays or the hashes are not restored. + +Counting the number of entries in a hash via C +or C) is inefficient since it needs to iterate +through all the entries with FIRSTKEY/NEXTKEY. + +Tied hash/array slices cause multiple FETCH/STORE pairs, there are no +tie methods for slice operations. + You cannot easily tie a multilevel data structure (such as a hash of hashes) to a dbm file. The first problem is that all but GDBM and Berkeley DB have size limitations, but beyond that, you also have problems @@ -1076,14 +1098,6 @@ source code to MLDBM. Tied filehandles are still incomplete. sysopen(), truncate(), flock(), fcntl(), stat() and -X can't currently be trapped. -The bucket usage information provided by C is not -available. If C<%hash> is tied, this will currently result in a -fatal error. - -Counting the number of entries in a hash via C or -C) is inefficient since it needs to iterate -through all the entries with FIRSTKEY/NEXTKEY. - =head1 AUTHOR Tom Christiansen