EXPECT
a := b := c
########
-eval { $q = pack "q", 0 };
-if ($@) {
+use integer;
$cusp = ~0 ^ (~0 >> 1);
$, = " ";
print +($cusp - 1) % 8, $cusp % 8, -$cusp % 8, ($cusp + 1) % 8, "!\n";
-} else {
-# We are on a 64-bit platform: fake it.
-# (If we have long doubles we might not need to fake it.)
-# Background: the $cusp will get converted from a UV into an NV because of
-# the subtraction and addition. Taking away or adding 1 from such a large
-# NV doesn't actually change the NV, so the modulo fails.
-print "7 0 0 1 !\n";
-}
EXPECT
-7 0 0 1 !
+-1 0 0 1 !
########
$foo=undef; $foo->go;
EXPECT
########
%@x=0;
EXPECT
-Can't modify hash deref in repeat at - line 1, near "0;"
+Can't modify hash dereference in repeat (x) at - line 1, near "0;"
Execution of - aborted due to compilation errors.
########
$_="foo";
syntax error at (re_eval 1) line 1, near ""{"}"
Compilation failed in regexp at - line 1.
########
-BEGIN { @ARGV = qw(a b c) }
+BEGIN { @ARGV = qw(a b c d e) }
BEGIN { print "argv <@ARGV>\nbegin <",shift,">\n" }
END { print "end <",shift,">\nargv <@ARGV>\n" }
INIT { print "init <",shift,">\n" }
+CHECK { print "check <",shift,">\n" }
EXPECT
-argv <a b c>
+argv <a b c d e>
begin <a>
-init <b>
-end <c>
-argv <>
+check <b>
+init <c>
+end <d>
+argv <e>
########
-l
# fdopen from a system descriptor to a system descriptor used to close
if ($x == 0) { print "" } else { print $x }
}
EXPECT
-Use of uninitialized value at - line 4.
+Use of uninitialized value in numeric eq (==) at - line 4.