diff options
author | Perl 5 Porters <perl5-porters@africa.nicoh.com> | 1996-12-23 12:58:58 +1200 |
---|---|---|
committer | Chip Salzenberg <chip@atlantic.net> | 1996-12-23 12:58:58 +1200 |
commit | 71be2cbc73608e37e1a2ab7e459a02111137d1b0 (patch) | |
tree | 86679f00907a9abdfd1ff5104cec60d9a9fb0ef9 /pod | |
parent | b133f4ec823b00faf9bd083e0eb8e7a53ba7bfca (diff) | |
download | perl-71be2cbc73608e37e1a2ab7e459a02111137d1b0.tar.gz |
[inseparable changes from patch from perl5.003_13 to perl5.003_14]
CORE LANGUAGE CHANGES
Subject: Eliminate support for {if,unless,while,until} BLOCK BLOCK
From: Chip Salzenberg <chip@atlantic.net>
Files: perly.c perly.c.diff perly.y toke.c
Subject: Taint $x after $x =~ s/pat/xyz/ if pat or xyz is tainted by locale
From: Chip Salzenberg <chip@atlantic.net>
Files: cop.h mg.c pp_ctl.c pp_hot.c
Subject: Complete support for modifying undefined array members in foreach
From: Chip Salzenberg <chip@atlantic.net>
Files: global.sym mg.c perl.h pp.c pp_hot.c proto.h sv.c
DOCUMENTATION
Subject: Update pod/Makefile; s/perli18n/perllocale/
From: Chip Salzenberg <chip@atlantic.net>
Files: ext/POSIX/POSIX.pod lib/I18N/Collate.pm pod/Makefile pod/perl.pod pod/perlmod.pod pod/perlnews.pod pod/roffitall
OTHER CORE CHANGES
Subject: Bug in debugger with import manipulations
Date: Mon, 23 Dec 1996 05:37:48 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: pp_hot.c
Finally I traced why MakeMaker runs wrongly under debugger: debugger
function calling sequence was assuming that
GvCV(CvGV(cv)) == cv
for non-anonymous subs (ne END). MakeMaker managed to break it by
*A::B = \&C::D;
eval 'sub C::D {new one}';
After this CvGV(\&A::B) is *C::D, but &{*C::D} is the "new one".
Patch follows (note that in this case we do not sacrifice having a
subroutine name in debugger output ;-).
Enjoy,
p5p-msgid: <199612231037.FAA08617@monk.mps.ohio-state.edu>
Subject: Import and dynamic methods
Date: Mon, 23 Dec 1996 01:45:37 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: gv.c hv.c sv.c
Here is the patch which corrects bad things which happens when you
import subroutines and otherwise manipulate the symbol tree.
I put forward the only chunk which may be controversal, since it may
have a minor performance penalty. It is independent of the others, so
it can be freely deleted.
The manipulations which correctly propagate to method calls:
a) Pruning globs: delete $B::{method}
b) Undefing subroutines: undef &B::method;
c) Importing: *B::method = \&mymethod;
Enjoy,
p5p-msgid: <199612230645.BAA08378@monk.mps.ohio-state.edu>
Subject: sv_gets patch
Date: Sun, 22 Dec 1996 03:24:04 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: pp_hot.c
I sent this patch before as a part of
pos $str =
$str = /failing/g
patch. Now I separate it in the case it was tainted by environment:
Synopsis:
$a = <FH>;
does not work as expected if $a is magic (say, tied).
Enjoy,
p5p-msgid: <199612220824.DAA07235@monk.mps.ohio-state.edu>
Subject: pos $str patch
Date: Sun, 22 Dec 1996 03:31:21 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: mg.c pp_hot.c t/op/pat.t
This patch was (mostly) posted already.
It fixes the bug:
pos $str
is reset to undef if
$str =~ /failing/g
fails.
Additionally, if fixes the hidded bit (=MGf_MINMATCH) surviving
setting
pos $str = ...
Enjoy,
p5p-msgid: <199612220831.DAA07247@monk.mps.ohio-state.edu>
PORTABILITY
Subject: Fix bugs in bincompat3 usage
From: Chip Salzenberg <chip@atlantic.net>
Files: perl.h perl_exp.SH
Subject: VMS patches to 5.003_13
Date: Mon, 23 Dec 1996 01:26:47 -0500 (EST)
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Files: deb.c ext/POSIX/POSIX.xs gv.c lib/File/Copy.pm mg.c perl.c perl.h proto.h sv.c t/lib/filecopy.t taint.c toke.c util.c vms/Makefile vms/config.vms vms/descrip.mms vms/gen_shrfls.pl vms/genconfig.pl vms/genopt.com vms/perly_c.vms vms/perly_h.vms vms/test.com vms/vms.c vms/vms_yfix.pl
private-msgid: <01IDBYYFYPIS002ASE@hmivax.humgen.upenn.edu>
UTILITIES, LIBRARY, AND EXTENSIONS
Subject: Remove libnet
From: Chip Salzenberg <chip@atlantic.net>
Files: MANIFEST pod/perlmod.pod
Subject: Update IO->VERSION() to 1.1201 for CPAN's sake
From: Chip Salzenberg <chip@atlantic.net>
Files: ext/IO/lib/IO/Handle.pm lib/IO/Handle.pm
Subject: Remodel File::Copy.
From: Chip Salzenberg <chip@atlantic.net>
Files: lib/File/Copy.pm
Diffstat (limited to 'pod')
-rw-r--r-- | pod/Makefile | 16 | ||||
-rw-r--r-- | pod/perl.pod | 2 | ||||
-rw-r--r-- | pod/perlfunc.pod | 7 | ||||
-rw-r--r-- | pod/perlmod.pod | 66 | ||||
-rw-r--r-- | pod/perlnews.pod | 37 | ||||
-rw-r--r-- | pod/perlobj.pod | 28 | ||||
-rw-r--r-- | pod/perltoot.pod | 4 | ||||
-rw-r--r-- | pod/roffitall | 2 |
8 files changed, 72 insertions, 90 deletions
diff --git a/pod/Makefile b/pod/Makefile index 564a63a192..9012b5735b 100644 --- a/pod/Makefile +++ b/pod/Makefile @@ -17,10 +17,11 @@ POD = \ perlform.pod \ perlfunc.pod \ perlguts.pod \ - perli18n.pod \ perlipc.pod \ + perllocale.pod \ perllol.pod \ perlmod.pod \ + perlnews.pod \ perlobj.pod \ perlop.pod \ perlovl.pod \ @@ -34,6 +35,7 @@ POD = \ perlsyn.pod \ perltie.pod \ perltoc.pod \ + perltoot.pod \ perltrap.pod \ perlvar.pod \ perlxs.pod \ @@ -53,10 +55,11 @@ MAN = \ perlform.man \ perlfunc.man \ perlguts.man \ - perli18n.man \ perlipc.man \ + perllocale.man \ perllol.man \ perlmod.man \ + perlnews.man \ perlobj.man \ perlop.man \ perlovl.man \ @@ -70,6 +73,7 @@ MAN = \ perlsyn.man \ perltie.man \ perltoc.man \ + perltoot.man \ perltrap.man \ perlvar.man \ perlxs.man \ @@ -89,10 +93,11 @@ HTML = \ perlform.html \ perlfunc.html \ perlguts.html \ - perli18n.html \ perlipc.html \ + perllocale.html \ perllol.html \ perlmod.html \ + perlnews.html \ perlobj.html \ perlop.html \ perlovl.html \ @@ -106,6 +111,7 @@ HTML = \ perlsyn.html \ perltie.html \ perltoc.html \ + perltoot.html \ perltrap.html \ perlvar.html \ perlxs.html \ @@ -125,10 +131,11 @@ TEX = \ perlform.tex \ perlfunc.tex \ perlguts.tex \ - perli18n.tex \ perlipc.tex \ + perllocale.tex \ perllol.tex \ perlmod.tex \ + perlnews.tex \ perlobj.tex \ perlop.tex \ perlovl.tex \ @@ -142,6 +149,7 @@ TEX = \ perlsyn.tex \ perltie.tex \ perltoc.tex \ + perltoot.tex \ perltrap.tex \ perlvar.tex \ perlxs.tex \ diff --git a/pod/perl.pod b/pod/perl.pod index e43424f26b..76a0f269fe 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -268,7 +268,7 @@ directory. If PERL5LIB is defined, PERLLIB is not used. =back Perl also has environment variables that control how Perl handles -language-specific data. Please consult the L<perli18n> section. +language-specific data. Please consult L<perllocale>. Apart from these, Perl uses no other environment variables, except to make them available to the script being executed, and to child diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod index 9e6a7f12ea..fe3da14929 100644 --- a/pod/perlfunc.pod +++ b/pod/perlfunc.pod @@ -3392,8 +3392,11 @@ That is exactly equivalent to BEGIN { require Module; } If the VERSION argument is present between Module and LIST, then the -C<use> will fail if the C<$VERSION> variable in package Module is -less than VERSION. +C<use> will call the VERSION method in class Module with the given +version as an argument. The default VERSION method, inherited from +the Universal class, croaks if the given version is larger than the +value of the variable $Module::VERSION. (Note that there is not a +comma after VERSION!) Because this is a wide-open interface, pragmas (compiler directives) are also implemented this way. Currently implemented pragmas are: diff --git a/pod/perlmod.pod b/pod/perlmod.pod index e6081aa2e3..c2b1f6c961 100644 --- a/pod/perlmod.pod +++ b/pod/perlmod.pod @@ -380,7 +380,7 @@ manipulate @INC at compile time =item locale -use or ignore current locale for built-in operations (see L<perli18n>) +use or ignore current locale for built-in operations (see L<perllocale>) =item ops @@ -432,6 +432,18 @@ split a package for autoloading benchmark running times of code +=item CPAN + +interface to Comprehensive Perl Archive Network + +=item CPAN::FirstTime + +create a CPAN configuration file + +=item CPAN::Nox + +run CPAN while avoiding compiled extensions + =item Carp warn of errors (from perspective of caller) @@ -520,18 +532,6 @@ write linker options files for dynamic extension add blib/* directories to @INC -=item CPAN - -interface to Comprehensive Perl Archive Network - -=item CPAN::FirstTime - -create a CPAN configuration file - -=item CPAN::Nox - -run CPAN while avoiding compiled extensions - =item Fatal replace functions with equivalents which succeed or die @@ -648,50 +648,10 @@ complex numbers and associated mathematical functions tied access to ndbm files -=item Net::Cmd - -Base class for command-oriented protocols - -=item Net::Domain - -Domain Name System client - -=item Net::FTP - -File Transfer Protocol client - -=item Net::NNTP - -Network News Transfer Protocol client - -=item Net::Netrc - -.netrc lookup routines - =item Net::Ping Hello, anybody home? -=item Net::POP3 - -Post Office Protocol client - -=item Net::SMTP - -Simple Mail Transfer Protocol client - -=item Net::SNPP - -Simple Network Pager Protocol client - -=item Net::Telnet - -Telnet client - -=item Net::Time - -Time and NetTime protocols - =item Net::hostent by-name interface to Perl's built-in gethost*() functions diff --git a/pod/perlnews.pod b/pod/perlnews.pod index 7e6e626723..a624b21c17 100644 --- a/pod/perlnews.pod +++ b/pod/perlnews.pod @@ -162,10 +162,11 @@ this more than we have to.) =item use Module VERSION LIST If the VERSION argument is present between Module and LIST, then the -C<use> will fail if the $VERSION variable in package Module is -less than VERSION. - -Note that there is not a comma after the version! +C<use> will call the VERSION method in class Module with the given +version as an argument. The default VERSION method, inherited from +the Universal class, croaks if the given version is larger than the +value of the variable $Module::VERSION. (Note that there is not a +comma after VERSION!) =item prototype(FUNCTION) @@ -209,16 +210,16 @@ I<undef> is returned. =item VERSION( [NEED] ) -C<VERSION> returns the version number of the class (package). If the -NEED argument is given then it will check that the current version is -not less than NEED and die if this is not the case. This method is -normally called as a class method. This method is also called when the -C<VERSION> form of C<use> is used. +C<VERSION> returns the version number of the class (package). If the +NEED argument is given then it will check that the current version (as +defined by the $VERSION variable in the given package) not less than +NEED; it will die if this is not the case. This method is normally +called as a class method. This method is called automatically by the +C<VERSION> form of C<use>. use A 1.2 qw(some imported subs); - - A->VERSION( 1.2 ); - $ref->is_instance(); # True + # implies: + A->VERSION(1.2); =item class() @@ -425,18 +426,22 @@ new pods are included in section 1: =over 4 -=item L<perli18n> +=item L<perlnews> -Internationalization. +This document. -=item L<perlapio> +=item L<perllocale> -Perl internal IO abstraction interface. +Locale support (internationalization and localization). =item L<perltoot> Tutorial on Perl OO programming. +=item L<perlapio> + +Perl internal IO abstraction interface. + =item L<perldebug> Although not new, this has been massively updated. diff --git a/pod/perlobj.pod b/pod/perlobj.pod index 1d13d90c9a..9b1ede111f 100644 --- a/pod/perlobj.pod +++ b/pod/perlobj.pod @@ -281,7 +281,7 @@ are inherited by all other classes: =over 4 -=item isa ( CLASS ) +=item isa(CLASS) C<isa> returns I<true> if its object is blessed into a sub-class of C<CLASS> @@ -294,29 +294,30 @@ allows the ability to check what a reference points to. Example ... } -=item can ( METHOD ) +=item can(METHOD) C<can> checks to see if its object has a method called C<METHOD>, if it does then a reference to the sub is returned, if it does not then I<undef> is returned. -=item VERSION ( [ VERSION ] ) +=item VERSION( [NEED] ) -C<VERSION> returns the VERSION number of the class (package). If -an argument is given then it will check that the current version is not -less that the given argument. This method is normally called as a class -method. This method is also called when the C<VERSION> form of C<use> is -used. +C<VERSION> returns the version number of the class (package). If the +NEED argument is given then it will check that the current version (as +defined by the $VERSION variable in the given package) not less than +NEED; it will die if this is not the case. This method is normally +called as a class method. This method is called automatically by the +C<VERSION> form of C<use>. use A 1.2 qw(some imported subs); - - A->VERSION( 1.2 ); + # implies: + A->VERSION(1.2); -=item class () +=item class() C<class> returns the class name of its object. -=item is_instance () +=item is_instance() C<is_instance> returns true if its object is an instance of some class, false if its object is the class (package) itself. Example @@ -336,6 +337,9 @@ C<isa> uses a very similar method and cache-ing strategy. This may cause strange effects if the Perl code dynamically changes @ISA in any package. You may add other methods to the UNIVERSAL class via Perl or XS code. +You do not need to C<use UNIVERSAL> in order to make these methods +available to your program. This is necessary only if you wish to +have C<isa> available as a plain subroutine in the current package. =head2 Destructors diff --git a/pod/perltoot.pod b/pod/perltoot.pod index 3fdedc2513..ff8e24fb3e 100644 --- a/pod/perltoot.pod +++ b/pod/perltoot.pod @@ -928,7 +928,7 @@ superclass's name. This in particular is bad if you change which classes you inherit from, or add others. Fortunately, the pseudoclass SUPER comes to the rescue here. - $class->SUPER::debug($Debugging); + $self->SUPER::debug($Debugging); This way it starts looking in my class's @ISA. This only makes sense from I<within> a method call, though. Don't try to access anything @@ -1271,7 +1271,7 @@ Although this is the same function each time, it contains a different version of $self. When a method like C<$him-E<gt>name("Jason")> is called, its implicit -zeroth argument is as the invoking object just as it is with all method +zeroth argument is the invoking object just as it is with all method calls. But in this case, it's our code reference (something like a function pointer in C++, but with deep binding of lexical variables). There's not a lot to be done with a code reference beyond calling it, so diff --git a/pod/roffitall b/pod/roffitall index 024279a69e..3df9386103 100644 --- a/pod/roffitall +++ b/pod/roffitall @@ -2,11 +2,13 @@ #psroff -t -man -rC1 -rD1 -rF1 > /tmp/PerlDoc.ps 2>/tmp/PerlTOC.raw \ nroff -man -rC1 -rD1 -rF1 > /tmp/PerlDoc.txt 2>/tmp/PerlTOC.nr.raw \ /usr/local/man/man1/perl.1 \ + /usr/local/man/man1/perlnews.1 \ /usr/local/man/man1/perldata.1 \ /usr/local/man/man1/perlsyn.1 \ /usr/local/man/man1/perlop.1 \ /usr/local/man/man1/perlre.1 \ /usr/local/man/man1/perlrun.1 \ + /usr/local/man/man1/perllocale.1 \ /usr/local/man/man1/perlfunc.1 \ /usr/local/man/man1/perlvar.1 \ /usr/local/man/man1/perlsub.1 \ |