Integrate if.pm 0.0401
Nicholas Clark [Sat, 29 Nov 2003 20:53:23 +0000 (20:53 +0000)]
Needed to edit the test file as t/TEST can't cope with extra output
lines as produced by 0.0401's if.t

p4raw-id: //depot/perl@21814

lib/if.pm
lib/if.t

index 9e140c3..700149f 100644 (file)
--- a/lib/if.pm
+++ b/lib/if.pm
@@ -1,6 +1,6 @@
 package if;
 
-$VERSION = '0.04';
+$VERSION = '0.0401';
 
 sub work {
   my $method = shift() ? 'import' : 'unimport';
@@ -8,8 +8,7 @@ sub work {
 
   my $p = $_[0];               # PACKAGE
   (my $file = "$p.pm") =~ s!::!/!g;
-  require $file;
-
+  require $file;               # Works even if $_[0] is a keyword (like open)
   my $m = $p->can($method);
   goto &$m if $m;
 }
index 61cc4b2..d17ff51 100644 (file)
--- a/lib/if.t
+++ b/lib/if.t
@@ -1,15 +1,26 @@
 #!./perl
 
 BEGIN {
-    chdir 't' if -d 't';
-    @INC = '../lib';
+    chdir 't' and @INC = '../lib' if -f 't/TEST';
 }
 
-use Test::More tests => 6;
+my $t = 1;
+print "1..5\n";
+sub ok {
+  print "not " unless shift;
+  print "ok $t # ", shift, "\n";
+  $t++;
+}
 
 my $v_plus = $] + 1;
 my $v_minus = $] - 1;
 
+unless (eval 'use open ":std"; 1') {
+  # pretend that open.pm is present
+  $INC{'open.pm'} = 'open.pm';
+  eval 'sub open::foo{}';              # Just in case...
+}
+
 
 ok( eval "use if ($v_minus > \$]), strict => 'subs'; \${'f'} = 12" eq 12,
     '"use if" with a false condition, fake pragma');
@@ -24,8 +35,7 @@ ok( (not defined eval "use if ($v_plus > \$]), strict => 'refs'; \${'f'} = 12"
      and $@ =~ /while "strict refs" in use/),
     '"use if" with a true condition and a pragma');
 
-ok( eval "use if 1, Cwd; cwd() || 1;",
-    '"use if" with a true condition, module, no arguments, exports');
-
-ok( eval "use if qw/ 1 if 1 strict subs /; \${'f'} = 12" eq 12,
-    '"use if" with a module named after keyword');
+# Old version had problems with the module name `open', which is a keyword too
+# Use 'open' =>, since pre-5.6.0 could interpret differently
+ok( (eval "use if ($v_plus > \$]), 'open' => IN => ':crlf'; 12" || 0) eq 12,
+    '"use if" with open');