]> git.vpit.fr Git - perl/modules/indirect.git/blob - t/10-good.t
Support variables with spaces after the sigil
[perl/modules/indirect.git] / t / 10-good.t
1 #!perl -T
2
3 package Dongs;
4
5 sub new;
6
7 package main;
8
9 use strict;
10 use warnings;
11
12 use Test::More tests => 49 * 4;
13
14 my ($obj, $pkg, $cb, $x, @a);
15 our $y;
16 sub meh;
17
18 {
19  local $/ = "####\n";
20  while (<DATA>) {
21   chomp;
22   local $SIG{__WARN__} = sub { die 'warn:' . join(' ', @_) };
23   {
24    use indirect;
25    eval "die qq{ok\\n}; $_";
26   }
27   is($@, "ok\n", "use indirect: $_");
28   {
29    no indirect;
30    eval "die qq{ok\n}; $_";
31   }
32   is($@, "ok\n", "no indirect: $_");
33   s/Hlagh/Dongs/g;
34   {
35    use indirect;
36    eval "die qq{ok\\n}; $_";
37   }
38   is($@, "ok\n", "use indirect, defined: $_");
39   {
40    no indirect;
41    eval "die qq{ok\\n}; $_";
42   }
43   is($@, "ok\n", "no indirect, defined: $_");
44  }
45 }
46
47 __DATA__
48 $obj = Hlagh->new;
49 ####
50 $obj = Hlagh->new();
51 ####
52 $obj = Hlagh->new(1);
53 ####
54 $obj = Hlagh->new(q{foo}, bar => $obj);
55 ####
56 $obj = Hlagh   ->   new   ;
57 ####
58 $obj = Hlagh   ->   new   (   )   ;
59 ####
60 $obj = Hlagh   ->   new   (   1   )   ;
61 ####
62 $obj = Hlagh   ->   new   (   'foo'   ,   bar =>   $obj   );
63 ####
64 $obj = Hlagh
65             ->
66                           new   ;
67 ####
68 $obj = Hlagh  
69
70       ->   
71 new   ( 
72  )   ;
73 ####
74 $obj = Hlagh
75                                        ->   new   ( 
76                1   )   ;
77 ####
78 $obj = Hlagh   ->
79                               new   (   "foo"
80   ,    bar     
81                =>        $obj       );
82 ####
83 $obj = Hlagh->$cb;
84 ####
85 $obj = Hlagh->$cb();
86 ####
87 $obj = Hlagh->$cb($pkg);
88 ####
89 $obj = Hlagh->$cb(sub { 'foo' },  bar => $obj);
90 ####
91 $obj = $pkg->new   ;
92 ####
93 $obj = $pkg  ->   new  (   );
94 ####
95 $obj = $pkg       
96            -> 
97         new ( $pkg );
98 ####
99 $obj = 
100          $pkg
101 ->
102 new        (     qr/foo/,
103       foo => qr/bar/   );
104 ####
105 $obj 
106   =  
107 $pkg
108 ->
109 $cb
110 ;
111 ####
112 $obj = $pkg    ->   ($cb)   ();
113 ####
114 $obj = $pkg->$cb( $obj  );
115 ####
116 $obj = $pkg->$cb(qw/foo bar baz/);
117 ####
118 $obj = new { $x };
119 ####
120 $obj = new
121   {
122      $x  }
123   ();
124 ####
125 $obj = new {
126   $x  } qq/foo/;
127 ####
128 $obj = new
129    {
130       $x
131     }(qw/bar baz/);
132 ####
133 meh;
134 ####
135 meh $_;
136 ####
137 meh $x;
138 ####
139 meh $x, 1, 2;
140 ####
141 meh $y;
142 ####
143 meh $y, 1, 2;
144 ####
145 print;
146 ####
147 print $_;
148 ####
149 print $x;
150 ####
151 print $x "oh hai\n";
152 ####
153 print $y;
154 ####
155 print $y "dongs\n";
156 ####
157 print STDOUT "bananananananana\n";
158 ####
159 $x->foo($pkg->$cb)
160 ####
161 $obj = "apple ${\(new Hlagh)} pear"
162 ####
163 $obj = "apple @{[new Hlagh]} pear"
164 ####
165 s/dongs/new Hlagh/e;
166 ####
167 exec $x $x, @a;
168 ####
169 exec { $a[0] } @a;
170 ####
171 system $x $x, @a;
172 ####
173 system { $a[0] } @a;