summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/perl/t/re/subst_amp.t
blob: f05d95d2ac99b4b43d168fde2a86f377a05a0952 (plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!./perl -w

BEGIN {
    chdir 't' if -d 't';
    @INC = '../lib';
    require './test.pl';
}

use strict;

$_ = 'x' x 20; 
s/\d*|x/<$&>/g; 
my $foo = '<>' . ('<x><>' x 20) ;
is($_, $foo);

my $t = 'aaa';

$_ = $t;
my @res;
pos = 1;
s/\Ga(?{push @res, $_, $`})/xx/g;
is("$_ @res", 'axxxx aaa a aaa aa');

$_ = $t;
@res = ();
pos = 1;
s/\Ga(?{push @res, $_, $`})/x/g;
is("$_ @res", 'axx aaa a aaa aa');

$_ = $t;
@res = ();
pos = 1;
s/\Ga(?{push @res, $_, $`})/xx/;
is("$_ @res", 'axxa aaa a');

$_ = $t;
@res = ();
pos = 1;
s/\Ga(?{push @res, $_, $`})/x/;
is("$_ @res", 'axa aaa a');

$a = $t;
@res = ();
pos ($a) = 1;
$a =~ s/\Ga(?{push @res, $_, $`})/xx/g;
is("$a @res", 'axxxx aaa a aaa aa');

$a = $t;
@res = ();
pos ($a) = 1;
$a =~ s/\Ga(?{push @res, $_, $`})/x/g;
is("$a @res", 'axx aaa a aaa aa');

$a = $t;
@res = ();
pos ($a) = 1;
$a =~ s/\Ga(?{push @res, $_, $`})/xx/;
is("$a @res", 'axxa aaa a');

$a = $t;
@res = ();
pos ($a) = 1;
$a =~ s/\Ga(?{push @res, $_, $`})/x/;
is("$a @res", 'axa aaa a');

sub x2 {'xx'}
sub x1 {'x'}

$a = $t;
@res = ();
pos ($a) = 1;
$a =~ s/\Ga(?{push @res, $_, $`})/x2/ge;
is("$a @res", 'axxxx aaa a aaa aa');

$a = $t;
@res = ();
pos ($a) = 1;
$a =~ s/\Ga(?{push @res, $_, $`})/x1/ge;
is("$a @res", 'axx aaa a aaa aa');

$a = $t;
@res = ();
pos ($a) = 1;
$a =~ s/\Ga(?{push @res, $_, $`})/x2/e;
is("$a @res", 'axxa aaa a');

$a = $t;
@res = ();
pos ($a) = 1;
$a =~ s/\Ga(?{push @res, $_, $`})/x1/e;
is("$a @res", 'axa aaa a');

done_testing();