1;
+=head1 NAME
+
+IO - load various IO modules
+
+=head1 SYNOPSIS
+
+ use IO;
+
+=head1 DESCRIPTION
+
+C<IO> provides a simple mechanism to load all of the IO modules at one go.
+Currently this includes:
+
+ IO::Handle
+ IO::Seekable
+ IO::File
+ IO::Pipe
+ IO::Socket
+
+For more information on any of these modules, please see its respective
+documentation.
+
+=cut
IO::Seekable - supply seek based methods for I/O objects
+=head1 SYNOPSIS
+
+ use IO::Seekable;
+ package IO::Something;
+ @ISA = qw(IO::Seekable);
+
=head1 DESCRIPTION
C<IO::Seekable> does not have a constuctor of its own as is intended to
IO::Select - OO interface to the system select call
-=head1 SYNOPSYS
+=head1 SYNOPSIS
use IO::Select;
use AutoSplit; autosplit($file, $dir, $keep, $check, $modtime);
for perl versions 5.002 and later:
-
+
perl -MAutoSplit -e 'autosplit($ARGV[0], $ARGV[1], $k, $chk, $modtime)' ...
=head1 DESCRIPTION
the use of modules in the lib directory without knowing where the software
tree is installed.
-If perl is invoked using the -e option or the perl script is read from
+If perl is invoked using the B<-e> option or the perl script is read from
C<STDIN> then FindBin sets both C<$Bin> and C<$RealBin> to the current
directory.
perl filename
and I<filename> does not have executable rights and a program called I<filename>
-exists in the users C<$ENV{PATH}> which satisfies both -x and -T then FindBin
+exists in the users C<$ENV{PATH}> which satisfies both B<-x> and B<-T> then FindBin
assumes that it was invoked via the C<$ENV{PATH}>.
Workaround is to invoke perl as
These options affect which handler will be used for subsequently
installed signals.
-=over
+=over 4
=item B<stack-trace>
B<sigtrap> has two built-in lists of signals to trap. They are:
-=over
+=over 4
=item B<normal-signals>
=head2 OTHER
+=over 4
+
=item B<untrapped>
This token tells B<sigtrap> only to install handlers for subsequently
=item B<PerlIO_stdoutf(fmt,...)>
This is printf() equivalent. printf is #defined to this function,
-so it is (currently) legal to use printf(fmt,...) in perl sources.
+so it is (currently) legal to use C<printf(fmt,...)> in perl sources.
=item B<PerlIO_read(f,buf,count)>, B<PerlIO_write(f,buf,count)>
extends to the end of the enclosing BLOCK or eval string, or to the next
successful pattern match, whichever comes first. If you want to use
parentheses to delimit a subpattern (e.g. a set of alternatives) without
-saving it as a subpattern, follow the ( with a ?.
+saving it as a subpattern, follow the ( with a ?:.
You may have as many parentheses as you wish. If you have more
than 9 substrings, the variables $10, $11, ... refer to the
# SUB: this should never appear
# SUB: this should never appear
-=back
+=back
=head2 Context Traps - scalar, list contexts
Perl4-to-Perl5 traps involving precedence order.
+=over 5
+
=item *
These are now semantic errors because of precedence:
Everything else.
+=over 5
+
=item * Unclassified
C<require>/C<do> trap using returned value
Our first extension will be very simple. When we call the routine in the
extension, it will print out a well-known message and return.
-Run "h2xs -A -n Mytest". This creates a directory named Mytest, possibly under
+Run C<h2xs -A -n Mytest>. This creates a directory named Mytest, possibly under
ext/ if that directory exists in the current working directory. Several files
will be created in the Mytest dir, including MANIFEST, Makefile.PL, Mytest.pm,
Mytest.xs, test.pl, and Changes.
can install it into its final location.
Invoking the test script via "make test" did something very important. It
-invoked perl with all those -I arguments so that it could find the various
+invoked perl with all those C<-I> arguments so that it could find the various
files that are part of the extension.
It is I<very> important that while you are still testing extensions that
Run "make test" and all should be well.
-=head 2 WHAT HAS HAPPENED HERE?
+=head2 WHAT HAS HAPPENED HERE?
Unlike previous examples, we've now run h2xs on a real include file. This
has caused some extra goodies to appear in both the .pm and .xs files.
+=over 4
+
=item *
In the .xs file, there's now a #include declaration with the full path to
$oops++;
warn "$0: Improper man page - no dash in NAME header in paragraph $. of $ARGV[0]\n"
}
- %namedesc = split /\s+-\s+/;
+ %namedesc = split /\s+-+\s+/;
last FCHECK;
}
next if /^=cut\b/; # DB_File and Net::Ping have =cut before NAME