Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | # |
2 | ||
3 | package IO; | |
4 | ||
5 | use XSLoader (); | |
6 | use Carp; | |
7 | use strict; | |
8 | use warnings; | |
9 | ||
10 | our $VERSION = "1.22"; | |
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 |