7 require Config; import Config;
8 keys %Config; # Silence warning
9 if ($Config{extensions} !~ /\bList\/Util\b/) {
10 print "1..0 # Skip: List::Util was not built\n";
17 use Test::More (grep { /dualvar/ } @Scalar::Util::EXPORT_FAIL)
18 ? (skip_all => 'dualvar requires XS version')
21 Scalar::Util->import('dualvar');
23 $var = dualvar( 2.2,"string");
25 ok( $var == 2.2, 'Numeric value');
26 ok( $var eq "string", 'String value');
30 ok( $var2 == 2.2, 'copy Numeric value');
31 ok( $var2 eq "string", 'copy String value');
35 ok( $var == 3.2, 'inc Numeric value');
36 ok( $var ne "string", 'inc String value');
39 my $numtmp = int($numstr); # use $numstr as an int
41 $var = dualvar($numstr, "");
43 ok( $var == $numstr, 'NV');
45 $var = dualvar(1<<31, "");
46 ok( $var == (1<<31), 'UV 1');
47 ok( $var > 0, 'UV 2');
50 $var = dualvar($tied, "ok");
51 ok($var == 7.5, 'Tied num');
52 ok($var eq 'ok', 'Tied str');
56 sub TIESCALAR { bless {} }