Re: [PATCH] Warning on pararameterless 'use IO' and doc update
Stéphane Payrard [Tue, 15 Oct 2002 02:17:03 +0000 (04:17 +0200)]
Message-ID: <20021015001703.GG7914@stefp.dyndns.org>

p4raw-id: //depot/perl@18039

ext/IO/IO.pm

index 0087530..eb78c8a 100644 (file)
@@ -10,6 +10,8 @@ XSLoader::load 'IO', $VERSION;
 
 sub import {
     shift;
+    warnings::warn('all', qq|parameterless "use IO" deprecated|)
+       if defined &warnings::warn && warnings::enabled('all');
     my @l = @_ ? @_ : qw(Handle Seekable File Pipe Socket Dir);
 
     eval join("", map { "require IO::" . (/(\w+)/)[0] . ";\n" } @l)
@@ -26,12 +28,13 @@ IO - load various IO modules
 
 =head1 SYNOPSIS
 
-    use IO;
+    use IO qw(Handle File);  # loads IO modules, here IO::Handle, IO::File
+    use IO;                  # DEPRECATED
 
 =head1 DESCRIPTION
 
-C<IO> provides a simple mechanism to load some of the IO modules at one go.
-Currently this includes:
+C<IO> provides a simple mechanism to load several of the IO modules
+in one go.  The IO modules belonging to the core are:
 
       IO::Handle
       IO::Seekable
@@ -39,9 +42,23 @@ Currently this includes:
       IO::Pipe
       IO::Socket
       IO::Dir
+      IO::Select
+      IO::Poll
+
+Some other IO modules don't belong to the perl core but can be loaded
+as well if they have been installed from CPAN.  You can discover which
+ones exist by searching for "^IO::" on http://search.cpan.org.
 
 For more information on any of these modules, please see its respective
 documentation.
 
+=head1 DEPRECATED
+
+    use IO;                # loads all the modules listed below
+
+The loaded modules are IO::Handle, IO::Seekable, IO::File, IO::Pipe,
+IO::Socket, IO::Dir.  You should instead explicitly import the IO
+modules you want.
+
 =cut