use XSLoader ();
use Carp;
+use strict;
+use warnings;
-$VERSION = "1.20";
+our $VERSION = "1.20";
XSLoader::load 'IO', $VERSION;
sub import {
shift;
- if (@_ == 0) {
- require warnings;
- warnings::warn('deprecated', qq{parameterless "use IO" deprecated})
- if warnings::enabled('deprecated');
- }
+
+ warnings::warnif('deprecated', qq{parameterless "use IO" deprecated})
+ if @_ == 0 ;
+
my @l = @_ ? @_ : qw(Handle Seekable File Pipe Socket Dir);
eval join("", map { "require IO::" . (/(\w+)/)[0] . ";\n" } @l)
use strict;
use File::Path;
use File::Spec;
-use Test::More tests => 13;
+use Test::More tests => 18;
{
local $INC{'XSLoader.pm'} = 1;
my @default = map { "IO/$_.pm" } qw( Handle Seekable File Pipe Socket Dir );
delete @INC{ @default };
-IO->import();
+my $warn = '' ;
+local $SIG{__WARN__} = sub { $warn = "@_" } ;
+
+{
+ no warnings ;
+ IO->import();
+ is( $warn, '', "... import default, should not warn");
+ $warn = '' ;
+}
+
+{
+ local $^W = 0;
+ IO->import();
+ is( $warn, '', "... import default, should not warn");
+ $warn = '' ;
+}
+
+{
+ local $^W = 1;
+ IO->import();
+ like( $warn, qr/^parameterless "use IO" deprecated at/,
+ "... import default, should warn");
+ $warn = '' ;
+}
+
+{
+ use warnings 'deprecated' ;
+ IO->import();
+ like( $warn, qr/^parameterless "use IO" deprecated at/,
+ "... import default, should warn");
+ $warn = '' ;
+}
+
+{
+ use warnings ;
+ IO->import();
+ like( $warn, qr/^parameterless "use IO" deprecated at/,
+ "... import default, should warn");
+ $warn = '' ;
+}
+
foreach my $default (@default)
{
ok( exists $INC{ $default }, "... import should default load $default" );