stas 02/04/16 21:34:45
Modified: src/docs/1.0/guide Changes.pod porting.pod
Log:
o bring the warnings section up to date with perl 5.6 (Rafael
Garcia-Suarez)
o cover the 5.6's CHECK block in addition to INIT (Rafael
Garcia-Suarez)
Submitted by: Rafael Garcia-Suarez <[EMAIL PROTECTED]>
Revision Changes Path
1.11 +6 -0 modperl-docs/src/docs/1.0/guide/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/1.0/guide/Changes.pod,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Changes.pod 17 Apr 2002 02:03:03 -0000 1.10
+++ Changes.pod 17 Apr 2002 04:34:45 -0000 1.11
@@ -16,6 +16,12 @@
o add a new section presenting a hackish solution for libraries
collision, via do() or %INC mangling.
+ o bring the warnings section up to date with perl 5.6 (Rafael
+ Garcia-Suarez)
+
+ o cover the 5.6's CHECK block in addition to INIT (Rafael
+ Garcia-Suarez)
+
* guide::troubleshooting
o solution to the 'readdir()/opendir() not working' problem (Louis
1.7 +31 -29 modperl-docs/src/docs/1.0/guide/porting.pod
Index: porting.pod
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/1.0/guide/porting.pod,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- porting.pod 15 Apr 2002 06:56:39 -0000 1.6
+++ porting.pod 17 Apr 2002 04:34:45 -0000 1.7
@@ -2697,19 +2697,21 @@
This is usually useful when some server wide cleanup should be
performed when the server is stopped or restarted.
-=head1 CHECK Blocks
+=head1 CHECK And INIT Blocks
--- available since perl5.6.0
-
-This block runs when compilation is complete, but before the program
-starts. B<CHECK> can mean "checkpoint" or "double-check" or even jus
-"stop").
-
-Perl only calls B<CHECK> blocks during perl_parse(), which mod_perl
-calls once at startup time. Therefore B<CHECK> blocks don't work for
-the same reason this doesn't:
+These blocks run when compilation is complete, but before the program
+starts. B<CHECK> can mean "checkpoint" or "double-check" or even just
+"stop". B<INIT> stands for "initialization". The difference is subtle;
+B<CHECK> blocks are run just after the compilation ends, B<INIT> just
+before the runtime begins. (Hence the C<-c> command-line flag to perl
+runs B<CHECK> blocks but not B<INIT> blocks.)
+
+Perl only calls these blocks during perl_parse(), which mod_perl calls
+once at startup time. Therefore B<CHECK> and B<INIT> blocks don't work
+for the same reason these don't:
% perl -e 'eval qq(CHECK { print "ok\n" })'
+ % perl -e 'eval qq(INIT { print "ok\n" })'
=head1 Command Line Switches (-w, -T, etc)
@@ -2740,50 +2742,50 @@
in C<httpd.conf> will turn warnings B<On> in any script.
You can then fine tune your code, turning warnings B<Off> and B<On> by
-setting the C<$^W> variable in your scripts.
+using the C<warnings> pragma in your scripts (or by setting the C<$^W>
+variable, if you prefer to be compatible with older, pre-5.6, perls).
=item * Locally to a script
#!/usr/bin/perl -w
will turn warnings B<On> for the scope of the script. You can turn
-them B<Off> and B<On> in the script by setting the C<$^W> variable as
-noted above.
+them B<Off> and B<On> in the script with C<no warnings;> and C<use
+warnings;> as noted above.
=item * Locally to a block
This code turns warnings mode B<On> for the scope of the block.
{
- local $^W = 1;
+ use warnings;
# some code
}
- # $^W assumes its previous value here
+ # back to the previous mode here
This turns it B<Off>:
{
- local $^W = 0;
+ no warnings;
# some code
}
- # $^W assumes its previous value here
-
-Note, that if you forget the C<local> operator this code will affect the
-child processing the current request, and all the subsequent requests
-processed by that child. Thus
+ # back to the previous mode here
- $^W = 0;
+This turns B<Off> only the warnings from the listed categories :
+(warnings categories are explicited in the C<perldiag> manpage.)
-will turn the warnings I<Off>, no matter what.
+ {
+ no warnings qw(uninitialized unopened);
+ # some code
+ }
+ # back to the previous mode here
-If you want to turn warnings I<On> for the scope of the whole file, as
-in the previous item, you can do this by adding:
+If you want to turn warnings I<On> for the scope of the whole file,
+you can do this by adding:
- local $^W = 1;
+ use warnings;
-at the beginning of the file. Since a file is effectively a block,
-file scope behaves like a block's curly braces C<{ }> and C<local $^W>
-at the start of the file will be effective for the whole file.
+at the beginning of the file.
=back
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]