io_sock.t
[p5sagit/p5-mst-13.2.git] / ext / IO / IO.pm
1 #
2
3 package IO;
4
5 use XSLoader ();
6 use Carp;
7 use strict;
8 use warnings;
9
10 our $VERSION = "1.20";
11 XSLoader::load 'IO', $VERSION;
12
13 sub import {
14     shift;
15
16     warnings::warnif('deprecated', qq{parameterless "use IO" deprecated})
17         if @_ == 0 ;
18     
19     my @l = @_ ? @_ : qw(Handle Seekable File Pipe Socket Dir);
20
21     eval join("", map { "require IO::" . (/(\w+)/)[0] . ";\n" } @l)
22         or croak $@;
23 }
24
25 1;
26
27 __END__
28
29 =head1 NAME
30
31 IO - load various IO modules
32
33 =head1 SYNOPSIS
34
35     use IO qw(Handle File);  # loads IO modules, here IO::Handle, IO::File
36     use IO;                  # DEPRECATED
37
38 =head1 DESCRIPTION
39
40 C<IO> provides a simple mechanism to load several of the IO modules
41 in one go.  The IO modules belonging to the core are:
42
43       IO::Handle
44       IO::Seekable
45       IO::File
46       IO::Pipe
47       IO::Socket
48       IO::Dir
49       IO::Select
50       IO::Poll
51
52 Some other IO modules don't belong to the perl core but can be loaded
53 as well if they have been installed from CPAN.  You can discover which
54 ones exist by searching for "^IO::" on http://search.cpan.org.
55
56 For more information on any of these modules, please see its respective
57 documentation.
58
59 =head1 DEPRECATED
60
61     use IO;                # loads all the modules listed below
62
63 The loaded modules are IO::Handle, IO::Seekable, IO::File, IO::Pipe,
64 IO::Socket, IO::Dir.  You should instead explicitly import the IO
65 modules you want.
66
67 =cut
68