summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/perl/ext/XS-APItest/t/synthetic_scope.t
blob: 43a758f077b582a0da32696519381bb2af7068ed (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!perl

use strict;
use warnings;

use Test::More tests => 18;

use XS::APItest qw(with_vars);

my $foo = "A"; my $rfoo = \$foo;
my $bar = "B"; my $rbar = \$bar;
my $baz = "C"; my $rbaz = \$baz;

with_vars foo bar baz {
    is $foo, 1;
    is $$rfoo, "A";
    isnt \$foo, $rfoo;

    is $bar, 2;
    is $$rbar, "B";
    isnt \$bar, $rbar;

    is $baz, 3;
    is $$rbaz, "C";
    isnt \$baz, $rbaz;
}

is $foo, "A";
is \$foo, $rfoo;

is $bar, "B";
is \$bar, $rbar;

is $baz, "C";
is \$baz, $rbaz;

with_vars x {
    is $x, 1;
}

is eval('$x++'), undef;
like $@, qr/explicit package name/;