sometimes get scrambled around, and the changes in config_H can
sometimes be very hard to follow. config.sh, on the other hand, can
safely be sorted, so it's easy to track (typically very small) changes
-to config.sh and then propoagate them to a canned 'config.h' by any
+to config.sh and then propagate them to a canned 'config.h' by any
number of means, including a perl script in win32/ or carrying
config.sh and config_h.SH to a Unix system and running sh
config_h.SH.) Vms uses configure.com to generate its own config.sh
=head2 make regen_perly
-If perly.y has been edited, it is nessary to run this target to rebuild
+If perly.y has been edited, it is necessary to run this target to rebuild
perly.h, perly.act and perly.tab. In fact this target just runs the Perl
script regen_perly.pl. Note that perly.c is I<not> rebuilt; this is just a
plain static file now.
the situation as it stands when you hand over the pumpkin.
You might like, early in your pumpkin-holding career, to see if you
-can find champions for partiticular issues on the to-do list: an issue
+can find champions for particular issues on the to-do list: an issue
owned is an issue more likely to be resolved.
There are also some more porting-specific L</Todo> items later in this
/----+-----perl - Mainline development (bleadperl)
+-----perlio - PerlIO Pumpkin's Perl
+-----vmsperl - VMS Pumpkin's Perl
- +-----maint-5.004------perl - Maintainance branches
+ +-----maint-5.004------perl - Maintenance branches
+-----maint-5.005------perl
+-----maint-5.6--------perl
+-----maint-5.8--------perl
=item getenv
-Returns the value of the specified enironment variable.
+Returns the value of the specified environment variable.
The same information is available through the C<%ENV> array.
=item geteuid
=item getpgrp
This is identical to Perl's builtin C<getpgrp()> function for
-returning the prcess group identifier of the current process, see
+returning the process group identifier of the current process, see
L<perlfunc/getpgrp>.
=item getpid
=item stat
This is identical to Perl's builtin C<stat()> function
-for retutning information about files and directories.
+for returning information about files and directories.
=item strcat
=head1 DESCRIPTION
This document describes differences between the 5.9.2 and the 5.9.3
-developement releases. See L<perl590delta>, L<perl591delta> and
+development releases. See L<perl590delta>, L<perl591delta> and
L<perl592delta> for the differences between 5.8.0 and 5.9.2.
=head1 Incompatible Changes
This corresponds to fseek(). Sends buffered write data to the
underlying file, or discards any buffered read data, then positions
-the file desciptor as specified by B<offset> and B<whence> (sic).
+the file descriptor as specified by B<offset> and B<whence> (sic).
This is the correct thing to do when switching between read and write
on the same handle (see issues with PerlIO_flush() above). Offset is
of type C<Off_t> which is a perl Configure value which may not be same
sub afterinit { push @DB::typeahead, "b 4", "b 6"; }
Which would attempt to set breakpoints on lines 4 and 6 immediately
-after debugger initilization. Note that @DB::typeahead is not a supported
+after debugger initialization. Note that @DB::typeahead is not a supported
interface and is subject to change in future releases.
If you want to modify the debugger, copy F<perl5db.pl> from the
=item Filehandle %s reopened as %s only for input
(W io) You opened for reading a filehandle that got the same filehandle id
-as STDOUT or STDERR. This occured because you closed STDOUT or STDERR
+as STDOUT or STDERR. This occurred because you closed STDOUT or STDERR
previously.
=item Filehandle STDIN reopened as %s only for output
(W io) You opened for writing a filehandle that got the same filehandle id
-as STDIN. This occured because you closed STDIN previously.
+as STDIN. This occurred because you closed STDIN previously.
=item Final $ should be \$ or $name
=item length/code after end of string in unpack
-(F) While unpacking, the string buffer was alread used up when an unpack
+(F) While unpacking, the string buffer was already used up when an unpack
length/code combination tried to obtain more data. This results in
an undefined value for the length. See L<perlfunc/pack>.
=item Repeated format line will never terminate (~~ and @# incompatible)
-(F) Your format containes the ~~ repeat-until-blank sequence and a
+(F) Your format contains the ~~ repeat-until-blank sequence and a
numeric field that will never go blank so that the repetition never
terminates. You might use ^# instead. See L<perlform>.
joining, starting, or requesting services for a Perl user group.
http://www.cpan.org/ is the Comprehensive Perl Archive Network,
-a replicated worlwide repository of Perl software, see
+a replicated worldwide repository of Perl software, see
the I<What is CPAN?> question earlier in this document.
=head1 AUTHOR AND COPYRIGHT
=item Affrus
-is a full Perl development enivornment with full debugger support
+is a full Perl development environment with full debugger support
( http://www.latenightsw.com ).
=item Alpha
This is documented in L<perlref>, and although it's not the easiest
thing to read, it does work. In each of these examples, we call the
function inside the braces of used to dereference a reference. If we
-have a more than one return value, we can contruct and dereference an
+have a more than one return value, we can construct and dereference an
anonymous array. In this case, we call the function in list context.
print "The time values are @{ [localtime] }.\n";
"Perler" # no word char before P, but one after l
You don't have to use \b to match words though. You can look for
-non-word characters surrrounded by word characters. These strings
+non-word characters surrounded by word characters. These strings
match the pattern /\b'\b/.
"don't" # the ' char is surrounded by "n" and "t"
=item architecture
-The kind of compluter you're working on, where one "kind" of computer
+The kind of computer you're working on, where one "kind" of computer
means all those computers sharing a compatible machine language.
Since Perl programs are (typically) simple text files, not executable
images, a Perl program is much less sensitive to the architecture it's
For example, a tied SV may have a valid underlying value in the IV slot
(so SvIOKp is true), but the data should be accessed via the FETCH
routine rather than directly, so SvIOK is false. Another is when
-numeric conversion has occured and precision has been lost: only the
+numeric conversion has occurred and precision has been lost: only the
private flag is set on 'lossy' values. So when an NV is converted to an
IV with loss, SvIOKp, SvNOKp and SvNOK will be set, while SvIOK wont be.
You can use these macros if you call code that may croak, but you need
to do some cleanup before giving control back to Perl. For example:
- dXCPT; /* set up neccessary variables */
+ dXCPT; /* set up necessary variables */
XCPT_TRY_START {
code_that_may_croak();
NV+1..IV inclusive is a range of cop_seq numbers for which the name is
valid. For typed lexicals name SV is SVt_PVMG and SvSTASH points at the
type. For C<our> lexicals, the type is SVt_PVGV, and GvSTASH points at the
-stash of the associated global (so that duplicate C<our> delarations in the
+stash of the associated global (so that duplicate C<our> declarations in the
same package can be detected). SvCUR is sometimes hijacked to
store the generation number during compilation.
=item pad_free
-Free the SV at offet po in the current pad.
+Free the SV at offset po in the current pad.
void pad_free(PADOFFSET po)
=item *
-Re-implement C<:unique> in a way that is actualy thread-safe
+Re-implement C<:unique> in a way that is actually thread-safe
=item *
If one of the input arguments to the C function is the length of a string
argument C<NAME>, one can substitute the name of the length-argument by
-C<length(NAME)> in the XSUB declaration. This argument must be omited when
+C<length(NAME)> in the XSUB declaration. This argument must be omitted when
the generated Perl function is called. E.g.,
void
int Run()
-Start executing an interpeter. A Parse() must have been called before
+Start executing an interpreter. A Parse() must have been called before
a Run(): use 3 and { "", "-e", 0 } if you do not have an argv.
Note that a call to Parse() is required before Run().
I<N.B.> The procedure by which extensions are built and
tested creates several levels (at least 4) under the
directory in which the extension's source files live.
-For this reason if you are runnning a version of VMS prior
+For this reason if you are running a version of VMS prior
to V7.1 you shouldn't nest the source directory
too deeply in your directory structure lest you exceed RMS'
maximum of 8 levels of subdirectory in a filespec. (You