summaryrefslogtreecommitdiff
path: root/pod/perldelta.pod
diff options
context:
space:
mode:
Diffstat (limited to 'pod/perldelta.pod')
-rw-r--r--pod/perldelta.pod67
1 files changed, 45 insertions, 22 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 1447fd4959..4aa05edc82 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -35,6 +35,29 @@ variable as if its contents had appeared on a "#!perl" line at the
beginning of your script, except that hyphens are optional. PERL5OPT
may only be used to set the following switches: B<-[DIMUdmw]>.
+=head2 Limitations on B<-M>, and C<-m>, and B<-T> options
+
+The C<-M> and C<-m> options are no longer allowed on the C<#!> line of
+a script. If a script needs a module, it should invoke it with the
+C<use> pragma.
+
+The B<-T> option is also forbidden on the C<#!> line of a script,
+unless it was present on the Perl command line. Due to the way C<#!>
+works, this usually means that B<-T> must be in the first argument.
+Thus:
+
+ #!/usr/bin/perl -T -w
+
+will probably work for an executable script invoked as C<scriptname>,
+while:
+
+ #!/usr/bin/perl -w -T
+
+will probably fail under the same conditions. (Non-Unix systems will
+probably not follow this rule.) But C<perl scriptname> is guaranteed
+to fail, since then there is no chance of B<-T> being found on the
+command line before it is found on the C<#!> line.
+
=head2 More precise warnings
If you removed the B<-w> option from your Perl 5.003 scripts because it
@@ -84,18 +107,18 @@ After this code executes in Perl 5.004, $a{b} exists but $a[2] does
not. In Perl 5.002 and 5.003, both $a{b} and $a[2] would have existed
(but $a[2]'s value would have been undefined).
-=head2 C<$)> is writable
+=head2 Group vector changeable with C<$)>
The C<$)> special variable has always (well, in Perl 5, at least)
-reflected not only the current effective group, but also the group
-list as returned by the C<getgroups()> C function (if there is one).
-However, due to an oversight, assigning to C<$)> has not called
-C<setgroups()>, only C<setegid()>.
+reflected not only the current effective group, but also the group list
+as returned by the C<getgroups()> C function (if there is one).
+However, until this release, there has not been a way to call the
+C<setgroups()> C function from Perl.
-In Perl 5.004, assigning to C<$)> is exactly symmetrical with
-examining it: The first number in its string value is used as the
-effective gid, and all the others are passed to the C<setgroups()> C
-function (if there is one).
+In Perl 5.004, assigning to C<$)> is exactly symmetrical with examining
+it: The first number in its string value is used as the effective gid;
+if there are any numbers after the first one, they are passed to the
+C<setgroups()> C function (if there is one).
=head2 Fixed parsing of $$<digit>, &$<digit>, etc.
@@ -127,9 +150,9 @@ calculation of a return value if it isn't going to be used.
=head2 Changes to tainting checks
A bug in previous versions may have failed to detect some insecure
-conditions when taint checks are turned on. (Taint checks are used
+conditions when taint checks are turned on. (Taint checks are used
in setuid or setgid scripts, or when explicitly turned on with the
-C<-T> invocation option.) Although it's unlikely, this may cause a
+C<-T> invocation option.) Although it's unlikely, this may cause a
previously-working script to now fail -- which should be construed
as a blessing, since that indicates a potentially-serious security
hole was just plugged.
@@ -662,17 +685,17 @@ alphabetically:
FindBin.pm Find path of currently executing program
- Class/Template.pm Structure/member template builder
- File/stat.pm Object-oriented wrapper around CORE::stat
- Net/hostent.pm Object-oriented wrapper around CORE::gethost*
- Net/netent.pm Object-oriented wrapper around CORE::getnet*
- Net/protoent.pm Object-oriented wrapper around CORE::getproto*
- Net/servent.pm Object-oriented wrapper around CORE::getserv*
- Time/gmtime.pm Object-oriented wrapper around CORE::gmtime
- Time/localtime.pm Object-oriented wrapper around CORE::localtime
- Time/tm.pm Perl implementation of "struct tm" for {gm,local}time
- User/grent.pm Object-oriented wrapper around CORE::getgr*
- User/pwent.pm Object-oriented wrapper around CORE::getpw*
+ Class/Struct.pm Declare struct-like datatypes as Perl classes
+ File/stat.pm By-name interface to Perl's built-in stat
+ Net/hostent.pm By-name interface to Perl's built-in gethost*
+ Net/netent.pm By-name interface to Perl's built-in getnet*
+ Net/protoent.pm By-name interface to Perl's built-in getproto*
+ Net/servent.pm By-name interface to Perl's built-in getserv*
+ Time/gmtime.pm By-name interface to Perl's built-in gmtime
+ Time/localtime.pm By-name interface to Perl's built-in localtime
+ Time/tm.pm Internal object for Time::{gm,local}time
+ User/grent.pm By-name interface to Perl's built-in getgr*
+ User/pwent.pm By-name interface to Perl's built-in getpw*
Tie/RefHash.pm Base class for tied hashes with references as keys