xref: /openbsd/gnu/usr.bin/perl/t/re/subst_amp.t (revision f6aab3d8)
1#!./perl -w
2
3BEGIN {
4    chdir 't' if -d 't';
5    require './test.pl';
6    set_up_inc('../lib');
7}
8
9use strict;
10
11$_ = 'x' x 20;
12s/\d*|x/<$&>/g;
13my $foo = '<>' . ('<x><>' x 20) ;
14is($_, $foo);
15
16my $t = 'aaa';
17
18$_ = $t;
19my @res;
20pos = 1;
21s/\Ga(?{push @res, $_, $`})/xx/g;
22is("$_ @res", 'axxxx aaa a aaa aa');
23
24$_ = $t;
25@res = ();
26pos = 1;
27s/\Ga(?{push @res, $_, $`})/x/g;
28is("$_ @res", 'axx aaa a aaa aa');
29
30$_ = $t;
31@res = ();
32pos = 1;
33s/\Ga(?{push @res, $_, $`})/xx/;
34is("$_ @res", 'axxa aaa a');
35
36$_ = $t;
37@res = ();
38pos = 1;
39s/\Ga(?{push @res, $_, $`})/x/;
40is("$_ @res", 'axa aaa a');
41
42$a = $t;
43@res = ();
44pos ($a) = 1;
45$a =~ s/\Ga(?{push @res, $_, $`})/xx/g;
46is("$a @res", 'axxxx aaa a aaa aa');
47
48$a = $t;
49@res = ();
50pos ($a) = 1;
51$a =~ s/\Ga(?{push @res, $_, $`})/x/g;
52is("$a @res", 'axx aaa a aaa aa');
53
54$a = $t;
55@res = ();
56pos ($a) = 1;
57$a =~ s/\Ga(?{push @res, $_, $`})/xx/;
58is("$a @res", 'axxa aaa a');
59
60$a = $t;
61@res = ();
62pos ($a) = 1;
63$a =~ s/\Ga(?{push @res, $_, $`})/x/;
64is("$a @res", 'axa aaa a');
65
66sub x2 {'xx'}
67sub x1 {'x'}
68
69$a = $t;
70@res = ();
71pos ($a) = 1;
72$a =~ s/\Ga(?{push @res, $_, $`})/x2/ge;
73is("$a @res", 'axxxx aaa a aaa aa');
74
75$a = $t;
76@res = ();
77pos ($a) = 1;
78$a =~ s/\Ga(?{push @res, $_, $`})/x1/ge;
79is("$a @res", 'axx aaa a aaa aa');
80
81$a = $t;
82@res = ();
83pos ($a) = 1;
84$a =~ s/\Ga(?{push @res, $_, $`})/x2/e;
85is("$a @res", 'axxa aaa a');
86
87$a = $t;
88@res = ();
89pos ($a) = 1;
90$a =~ s/\Ga(?{push @res, $_, $`})/x1/e;
91is("$a @res", 'axa aaa a');
92
93done_testing();
94