=head1 NAME
-perlamiga - Perl under Amiga OS
+perlamiga - Perl under Amiga OS (possibly very outdated information)
=head1 SYNOPSIS
+NOTE: No one has reported building Perl on the Amiga in a long
+time. The following information is highly unlikely to be correct.
+If you would like to help the Amiga port to stay current, see:
+
+ http://us.aminet.net/aminet/dirs/dev_gg.html
+
+for Amiga resources and information.
+
One can read this document in the following formats:
man perlamiga
time, you will get fatal "Unresolved symbol" errors at run time when the
library is loaded.
-You may create a shared library that referers to another library, which
+You may create a shared library that refers to another library, which
may be either an archive library or a shared library. If it is a
shared library, this is called a "dependent library".
The dependent library's name is recorded in the main shared library,
=back
-=head2 Using external modules
-
-If warnings are enabled with Perl's C<-w> command-line flag, you are
-likely to see warnings when using external modules containing XS
-(compiled) code:
-
- Subroutine DynaLoader::dl_error redefined at /usr/local/lib/perl5/5.6.0/powerpc-machten/DynaLoader.pm line 93.
-
-This is a harmless consequence of the static linking used for MachTen
-perl. You can suppress the warnings by using the more modern
-C<-Mwarnings> instead of the traditional C<-w>. (See L<perllexwarn>.)
-
=head2 Building external modules
To add an external module to perl, build in the normal way, which
is documented in L<ExtUtils::MakeMaker>, or which can be driven
automatically by the CPAN module (see L<CPAN>), which is part of the
-standard distribution. If wou want to install a
-module contains XS code (C or C++ source which compiles to object code
+standard distribution. If you want to install a module which
+contains XS code (C or C++ source which compiles to object code
for linking with perl), you will have to replace your perl binary with
a new version containing the new statically-linked object module. The
build process tells you how to do this.
=head1 DATE
-Version 1.0 2000-03-22
+Version 1.0.1 2000-03-27
B<Disadvantages:> currently F<sh.exe> of pdksh calls external programs
via fork()/exec(), and there is I<no> functioning exec() on
-OS/2. exec() is emulated by EMX by asyncroneous call while the caller
+OS/2. exec() is emulated by EMX by asynchronous call while the caller
waits for child completion (to pretend that the C<pid> did not change). This
means that 1 I<extra> copy of F<sh.exe> is made active via fork()/exec(),
which may lead to some resources taken from the system (even if we do
Perl uses its own malloc() under OS/2 - interpreters are usually malloc-bound
for speed, but perl is not, since its malloc is lightning-fast.
-Perl-memory-usage-tuned benchmarks show that Perl's malloc is 5 times quickier
-than EMX one. I do not have convincing data about memory footpring, but
+Perl-memory-usage-tuned benchmarks show that Perl's malloc is 5 times quicker
+than EMX one. I do not have convincing data about memory footprint, but
a (pretty random) benchmark showed that Perl one is 5% better.
Combination of perl's malloc() and rigid DLL name resolution creates
The Perl Institute (http://www.perl.org/) maintains a perl-mvs
mailing list of interest to all folks building and/or
-using perl on EBCDIC platforms. To subscibe, send a message of:
+using perl on EBCDIC platforms. To subscribe, send a message of:
subscribe perl-mvs
in the README for the GCC bundle. You may need to set up a few environment
variables (usually run from a batch file).
+The version of gcc-2.95.2-msvcrt.exe released 7 November 1999 left out
+a fix for certain command line quotes, so be sure to download and install
+fixes/quote-fix-msvcrt.exe too.
+
You also need dmake. See L</"Make"> above on how to get it.
=back
=head1 DESCRIPTION
This file is the autogenerated documentation of functions in the
-Perl intrepreter that are documented using Perl's internal documentation
+Perl interpreter that are documented using Perl's internal documentation
format but are not marked as part of the Perl API. In other words,
B<they are not for use in extensions>!
=head1 AUTHORS
-The autodocumentation system was orignally added to the Perl core by
+The autodocumentation system was originally added to the Perl core by
Benjamin Stuhl. Documentation is by whoever was kind enough to
document their functions.
/*
=for apidoc Am|bool|isALNUM|char ch
-Returns a boolean indicating whether the C C<char> is an ascii alphanumeric
+Returns a boolean indicating whether the C C<char> is an ASCII alphanumeric
character or digit.
=for apidoc Am|bool|isALPHA|char ch
-Returns a boolean indicating whether the C C<char> is an ascii alphabetic
+Returns a boolean indicating whether the C C<char> is an ASCII alphabetic
character.
=for apidoc Am|bool|isSPACE|char ch
Returns a boolean indicating whether the C C<char> is whitespace.
=for apidoc Am|bool|isDIGIT|char ch
-Returns a boolean indicating whether the C C<char> is an ascii
+Returns a boolean indicating whether the C C<char> is an ASCII
digit.
=for apidoc Am|bool|isUPPER|char ch
destination, C<nitems> is the number of items, and C<type> is the type.
=for apidoc Am|void|StructCopy|type src|type dest|type
-This is an architecture-independant macro to copy one structure to another.
+This is an architecture-independent macro to copy one structure to another.
=cut
*/
C<exec> failures in the child are not detected. You'll have to
trap SIGPIPE yourself.
-open2() does not wait for and reap the child process after it exits.
+open3() does not wait for and reap the child process after it exits.
Except for short programs where it's acceptable to let the operating system
take care of this, you need to do this yourself. This is normally as
simple as calling C<waitpid $pid, 0> when you're done with the process.
=item Win32::GetLongPathName(PATHNAME)
-[CORE] Returns a representaion of PATHNAME composed of longname
+[CORE] Returns a representation of PATHNAME composed of longname
components (if any). The result may not necessarily be longer
than PATHNAME. No attempt is made to convert PATHNAME to the
absolute path. Compare with Win32::GetShortPathName and
package will be invoked.
delete() may be used to remove an element from the array and return
-it. The array element at that position returns to its unintialized
+it. The array element at that position returns to its uninitialized
state, so that testing for the same element with exists() will return
false. If the element happens to be the one at the end, the size of
the array also shrinks up to the highest element that tests true for
go to achieve production quality compiled executables.
NOTE: The Compiler suite remains highly experimental. The
- generated code may not be correct, even it manages to execute
+ generated code may not be correct, even when it manages to execute
without errors.
=item Benchmark
=head1 DESCRIPTION
- B<This program> will read the given input file(s) and do someting
+ B<This program> will read the given input file(s) and do something
useful with the contents thereof.
=cut
timeouts.
IO::Socket::INET->new now sets $! correctly on failure. $@ is
-still set for backwards compatability.
+still set for backwards compatibility.
=item JPL
=head2 VMS
Numerous revisions and extensions to configuration, build, testing, and
-installation process to accomodate core changes and VMS-specific options.
+installation process to accommodate core changes and VMS-specific options.
Expand %ENV-handling code to allow runtime mapping to logical names,
CLI symbols, and CRTL environ array.
=head2 All compilation errors are true errors
-Some "errors" encountered at compile time were by neccessity
+Some "errors" encountered at compile time were by necessity
generated as warnings followed by eventual termination of the
program. This enabled more such errors to be reported in a
single run, rather than causing a hard stop at the first error
(W internal) A warning peculiar to VMS. Perl tried to read the CRTL's internal
environ array, and encountered an element without the C<=> delimiter
-used to spearate keys from values. The element is ignored.
+used to separate keys from values. The element is ignored.
=item Ill-formed message in prime_env_iter: |%s|
=item pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead
-(W deprecated) You have written somehing like this:
+(W deprecated) You have written something like this:
sub doit
{
=item EXTEND
Used to extend the argument stack for an XSUB's return values. Once
-used, guarrantees that there is room for at least C<nitems> to be pushed
+used, guarantees that there is room for at least C<nitems> to be pushed
onto the stack.
void EXTEND(SP, int nitems)
=item isALNUM
-Returns a boolean indicating whether the C C<char> is an ascii alphanumeric
+Returns a boolean indicating whether the C C<char> is an ASCII alphanumeric
character or digit.
bool isALNUM(char ch)
=item isALPHA
-Returns a boolean indicating whether the C C<char> is an ascii alphabetic
+Returns a boolean indicating whether the C C<char> is an ASCII alphabetic
character.
bool isALPHA(char ch)
=item isDIGIT
-Returns a boolean indicating whether the C C<char> is an ascii
+Returns a boolean indicating whether the C C<char> is an ASCII
digit.
bool isDIGIT(char ch)
=item StructCopy
-This is an architecture-independant macro to copy one structure to another.
+This is an architecture-independent macro to copy one structure to another.
void StructCopy(type src, type dest, type)
all of Perl. You can order it and other Perl books from O'Reilly &
Associates, 1-800-998-9938. Local/overseas is +1 707 829 0515. If you
can locate an O'Reilly order form, you can also fax to +1 707 829 0104.
-If you're web-connected, you can even mosey on over to http://www.ora.com/
+If you're web-connected, you can even mosey on over to http://www.oreilly.com/
for an online order form.
Other Perl books from various publishers and authors
This module is used by the B::CC back end. It walks "basic blocks".
A basic block is a series of operations which is known to execute from
-start to finish, with no possiblity of branching or halting.
+start to finish, with no possibility of branching or halting.
=item B::Bytecode
=item B::Showlex
This module prints out the my() variables used in a function or a
-file. To gt a list of the my() variables used in the subroutine
+file. To get a list of the my() variables used in the subroutine
mysub() defined in the file myperlprogram:
$ perl -MO=Showlex,mysub myperlprogram
-To gt a list of the my() variables used in the file myperlprogram:
+To get a list of the my() variables used in the file myperlprogram:
$ perl -MO=Showlex myperlprogram
The optimized C backend outputs code for more modules than it should
(e.g., DirHandle). It also has little hope of properly handling
-C<goto LABEL> outside the running subroutine (C<goto &sub> is ok).
+C<goto LABEL> outside the running subroutine (C<goto &sub> is okay).
C<goto LABEL> currently does not work at all in this backend.
It also creates a huge initialization function that gives
C compilers headaches. Splitting the initialization function gives
Perl has special debugging hooks at compile-time and run-time used
to create debugging environments. These hooks are not to be confused
-with the I<perl -Dxxx> command described in L<perlrun>, which are
-usable only if a special Perl built per the instructions the
+with the I<perl -Dxxx> command described in L<perlrun>, which is
+usable only if a special Perl is built per the instructions in the
F<INSTALL> podpage in the Perl source tree.
For example, whenever you call Perl's built-in C<caller> function
is a saying that to estimate memory usage of Perl, assume a reasonable
algorithm for memory allocation, multiply that estimate by 10, and
while you still may miss the mark, at least you won't be quite so
-astonished. This is not absolutely true, but may prvide a good
+astonished. This is not absolutely true, but may provide a good
grasp of what happens.
Assume that an integer cannot take less than 20 bytes of memory, a
If your perl is using Perl's malloc() and was compiled with the
necessary switches (this is the default), then it will print memory
-usage statistics after compiling your code hwen C<< $ENV{PERL_DEBUG_MSTATS}
+usage statistics after compiling your code when C<< $ENV{PERL_DEBUG_MSTATS}
> 1 >>, and before termination of the program when C<<
$ENV{PERL_DEBUG_MSTATS} >= 1 >>. The report format is similar to
the following example:
the memory footprints of the buckets are between the memory footprints
of two buckets "above".
-For example, suppose under the pervious example, the memory footprints
+For example, suppose under the previous example, the memory footprints
were
free: 8 16 32 64 128 256 512 1024 2048 4096 8192
do 'lib/auto/POSIX/autosplit.ix';
warn('!!! "after"');
-and run it with PErl's B<-DL> option. The first warn() will print
+and run it with Perl's B<-DL> option. The first warn() will print
memory allocation info before parsing the file and will memorize
the statistics at this point (we ignore what it prints). The second
warn() prints increments with respect to these memorized data. This
=item C<717>
-CReates bigger C<XPV*> structures. In the case above, it
+Creates bigger C<XPV*> structures. In the case above, it
creates 3 C<AV>s per subroutine, one for a list of lexical variable
names, one for a scratchpad (which contains lexical variables and
C<targets>), and one for the array of scratchpads needed for
(W internal) A warning peculiar to VMS. Perl tried to read the CRTL's internal
environ array, and encountered an element without the C<=> delimiter
-used to spearate keys from values. The element is ignored.
+used to separate keys from values. The element is ignored.
=item Ill-formed message in prime_env_iter: |%s|
=item pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead
-(W deprecated) You have written somehing like this:
+(W deprecated) You have written something like this:
sub doit
{
=item Stub found while resolving method `%s' overloading `%s' in package `%s'
(P) Overloading resolution over @ISA tree may be broken by importation stubs.
-Stubs should never be implicitely created, but explicit calls to C<can>
+Stubs should never be implicitly created, but explicit calls to C<can>
may break this.
=item Subroutine %s redefined
=item %ENV
-Each pseudo-process maintains its own virtual enviroment. Modifications
+Each pseudo-process maintains its own virtual environment. Modifications
to %ENV affect the virtual environment, and are only visible within that
pseudo-process, and in any processes (or pseudo-processes) launched from
it.
=item Keywords related to scoping
-C<caller>, C<import>, C<local>, C<my>, C<package>, C<use>
+C<caller>, C<import>, C<local>, C<my>, C<our>, C<package>, C<use>
=item Miscellaneous functions
-C<defined>, C<dump>, C<eval>, C<formline>, C<local>, C<my>, C<reset>,
+C<defined>, C<dump>, C<eval>, C<formline>, C<local>, C<my>, C<our>, C<reset>,
C<scalar>, C<undef>, C<wantarray>
=item Functions for processes and process groups
=item Functions new in perl5
C<abs>, C<bless>, C<chomp>, C<chr>, C<exists>, C<formline>, C<glob>,
-C<import>, C<lc>, C<lcfirst>, C<map>, C<my>, C<no>, C<prototype>, C<qx>,
-C<qw>, C<readline>, C<readpipe>, C<ref>, C<sub*>, C<sysopen>, C<tie>,
+C<import>, C<lc>, C<lcfirst>, C<map>, C<my>, C<no>, C<our>, C<prototype>,
+C<qx>, C<qw>, C<readline>, C<readpipe>, C<ref>, C<sub*>, C<sysopen>, C<tie>,
C<tied>, C<uc>, C<ucfirst>, C<untie>, C<use>
* - C<sub> was a keyword in perl4, but in perl5 it is an
Another consequence of using binmode() (on some systems) is that
special end-of-file markers will be seen as part of the data stream.
For systems from the Microsoft family this means that if your binary
-data contains C<\cZ>, the I/O subsystem will ragard it as the end of
+data contains C<\cZ>, the I/O subsystem will regard it as the end of
the file, unless you use binmode().
binmode() is not only important for readline() and print() operations,
die() can also be called with a reference argument. If this happens to be
trapped within an eval(), $@ contains the reference. This behavior permits
a more elaborate exception handling implementation using objects that
-maintain arbitary state about the nature of the exception. Such a scheme
+maintain arbitrary state about the nature of the exception. Such a scheme
is sometimes preferable to matching particular string values of $@ using
regular expressions. Here's an example:
follows:
a A string with arbitrary binary data, will be null padded.
- A An ascii string, will be space padded.
+ A An ASCII string, will be space padded.
Z A null terminated (asciz) string, will be null padded.
b A bit string (ascending bit order inside each byte, like vec()).
the C<eval ''>, C<BEGIN {}>, C<INIT {}>, C<CHECK {}>, and C<END {}>
constructs.
-See also C<unshift>, C<push>, and C<pop>. C<Shift()> and C<unshift> do the
+See also C<unshift>, C<push>, and C<pop>. C<shift()> and C<unshift> do the
same thing to the left end of an array that C<pop> and C<push> do to the
right end.
and the S_IF* functions are
- S_IFMODE($mode) the part of $mode containg the permission bits
+ S_IFMODE($mode) the part of $mode containing the permission bits
and the setuid/setgid/sticky bits
S_IFMT($mode) the part of $mode containing the file type
"Perl_", but just because a function begins with "Perl_" does not mean it is
part of the API. The easiest way to be B<sure> a function is part of the API
is to find its entry in L<perlapi>. If it exists in L<perlapi>, it's part
-of the API. If it doesn't, and you think it should be (i.e., you need it fo
-r your extension), send mail via L<perlbug> explaining why you think it
+of the API. If it doesn't, and you think it should be (i.e., you need it for
+your extension), send mail via L<perlbug> explaining why you think it
should be.
(L<perlapi> itself is generated by embed.pl, a Perl script that generates
sv_setsv(asv, bsv);
-in your extesion will translate to this when PERL_IMPLICIT_CONTEXT is
+in your extension will translate to this when PERL_IMPLICIT_CONTEXT is
in effect:
Perl_sv_setsv(Perl_get_context(), asv, bsv);
=head1 DESCRIPTION
This file is the autogenerated documentation of functions in the
-Perl intrepreter that are documented using Perl's internal documentation
+Perl interpreter that are documented using Perl's internal documentation
format but are not marked as part of the Perl API. In other words,
B<they are not for use in extensions>!
=head1 AUTHORS
-The autodocumentation system was orignally added to the Perl core by
+The autodocumentation system was originally added to the Perl core by
Benjamin Stuhl. Documentation is by whoever was kind enough to
document their functions.
}
The web server handing the "http" service, which is assumed to be at
-its standard port, number 80. If your the web server you're trying to
+its standard port, number 80. If the web server you're trying to
connect to is at a different port (like 1080 or 8080), you should specify
as the named-parameter pair, C<< PeerPort => 8080 >>. The C<autoflush>
method is used on the socket because otherwise the system would buffer
local $main::{foo} = $main::{bar};
You can use this to print out all the variables in a package, for
-instance. The standard but antequated F<dumpvar.pl> library and
+instance. The standard but antiquated F<dumpvar.pl> library and
the CPAN module Devel::Symdump make use of this.
Assignment to a typeglob performs an aliasing operation, i.e.,
suite to save the compiled state of the program.
When you use the B<-n> and B<-p> switches to Perl, C<BEGIN> and
-C<END> work just as they do in B<awk>, as a degenerate case. As currently
-implemented (and subject to change, since its inconvenient at best),
-both C<BEGIN> and<END> blocks are run when you use the B<-c> switch
-for a compile-only syntax check, although your main code is not.
+C<END> work just as they do in B<awk>, as a degenerate case.
+Both C<BEGIN> and C<CHECK> blocks are run when you use the B<-c>
+switch for a compile-only syntax check, although your main code
+is not.
=head2 Perl Classes
symbol table of any package using it. Or it may function as a class
definition and make its semantics available implicitly through
method calls on the class and its objects, without explicitly
-exportating anything. Or it can do a little of both.
+exporting anything. Or it can do a little of both.
For example, to start a traditional, non-OO module called Some::Module,
create a file called F<Some/Module.pm> and start with this template:
In general, all Macintosh decompression utilities mentioned here
can be found in the Info-Mac Hyperarchive
( http://hyperarchive.lcs.mit.edu/HyperArchive.html ).
-Specificly the "Commpress & Translate" listing
+Specifically the "Compress & Translate" listing
( http://hyperarchive.lcs.mit.edu/HyperArchive/Abstracts/cmp/HyperArchive.html ).
powers of 2. However, "native" floats have a most fundamental
restriction: they may represent only those numbers which have a relatively
"short" representation when converted to a binary fraction. For example,
-0.9 cannot be respresented by a native float, since the binary fraction
+0.9 cannot be represented by a native float, since the binary fraction
for 0.9 is infinite:
binary0.1110011001100...
may be closer to the conjectural I<intention> of the writer of C<"\Q\t\E">.
Interpolated scalars and arrays are converted internally to the C<join> and
-C<.> catentation operations. Thus, C<"$foo XXX '@arr'"> becomes:
+C<.> catenation operations. Thus, C<"$foo XXX '@arr'"> becomes:
$foo . " XXX '" . (join $", @arr) . "'";
either of the variables set like so:
$is_big_endian = unpack("h*", pack("s", 1)) =~ /01/;
- $is_litte_endian = unpack("h*", pack("s", 1)) =~ /^1/;
+ $is_little_endian = unpack("h*", pack("s", 1)) =~ /^1/;
Differing widths can cause truncation even between platforms of equal
endianness. The platform of shorter width loses the upper parts of the
notion of a "path" to uniquely identify a file on the system. How
that path is really written, though, differs considerably.
-Atlhough similar, file path specifications differ between Unix,
+Although similar, file path specifications differ between Unix,
Windows, S<Mac OS>, OS/2, VMS, VOS, S<RISC OS>, and probably others.
Unix, for example, is one of the few OSes that has the elegant idea
of a single root directory.
most platforms (though many of them do not support any type of
forking). The problem with using them arises from what you invoke
them on. External tools are often named differently on different
-platforms, may not be available in the same location, migth accept
+platforms, may not be available in the same location, might accept
different arguments, can behave differently, and often present their
results in a platform-dependent way. Thus, you should seldom depend
on them to produce consistent results. (Then again, if you're calling
in many situations where on the first sight a simple C<()*> looks like
the correct solution. Suppose we parse text with comments being delimited
by C<#> followed by some optional (horizontal) whitespace. Contrary to
-its appearence, C<#[ \t]*> I<is not> the correct subexpression to match
+its appearance, C<#[ \t]*> I<is not> the correct subexpression to match
the comment delimiter, because it may "give up" some whitespace if
the remainder of the pattern can be made to match that way. The correct
answer is either one of these:
=back
If you find an example of a conversion trap that is not listed here,
-please submit it to Bill Middleton <F<wjm@best.com>> for inclusion.
+please submit it to <F<perlbug@perl.org>> for inclusion.
Also note that at least some of these can be caught with the
C<use warnings> pragma or the B<-w> switch.
characters, but you can also specify a particular character with an
extension of the C<\x> notation. UTF-8 characters are specified by
putting the hexadecimal code within curlies after the C<\x>. For instance,
-a Unicode smiley face is C<\x{263A}>. A character in the Latin-1 range
-(128..255) should be written C<\x{ab}> rather than C<\xab>, since the
-former will turn into a two-byte UTF-8 code, while the latter will
-continue to be interpreted as generating a 8-bit byte rather than a
-character. In fact, if the C<use warnings> pragma of the C<-w> switch
-is turned on, it will produce a warning
-that you might be generating invalid UTF-8.
+a Unicode smiley face is C<\x{263A}>.
=item *
=over 5
-=item C<$`> is the same as C<substr($var, 0, $-[0]>)
+=item C<$`> is the same as C<substr($var, 0, $-[0])>
-=item C<$&> is the same as C<substr($var, $-[0], $+[0] - $-[0]>)
+=item C<$&> is the same as C<substr($var, $-[0], $+[0] - $-[0])>
-=item C<$'> is the same as C<substr($var, $+[0]>)
+=item C<$'> is the same as C<substr($var, $+[0])>
=item C<$1> is the same as C<substr($var, $-[1], $+[1] - $-[1])>
=item C<$2> is the same as C<substr($var, $-[2], $+[2] - $-[2])>
-=item C<$3> is the same as C<substr $var, $-[3], $+[3] - $-[3]>)
+=item C<$3> is the same as C<substr $var, $-[3], $+[3] - $-[3])>
=back
/*
=for apidoc Am|void|EXTEND|SP|int nitems
Used to extend the argument stack for an XSUB's return values. Once
-used, guarrantees that there is room for at least C<nitems> to be pushed
+used, guarantees that there is room for at least C<nitems> to be pushed
onto the stack.
=for apidoc Am|void|PUSHs|SV* sv