1 pp_ctl.c AOK 2 3 Not enough format arguments 4 format STDOUT = 5 @<<< @<<< 6 $a 7 . 8 write; 9 10 11 Exiting substitution via %s 12 $_ = "abc" ; 13 while ($i ++ == 0) 14 { 15 s/ab/last/e ; 16 } 17 18 Exiting subroutine via %s 19 sub fred { last } 20 { fred() } 21 22 Exiting eval via %s 23 { eval "last" } 24 25 Exiting pseudo-block via %s 26 @a = (1,2) ; @b = sort { last } @a ; 27 28 Exiting substitution via %s 29 $_ = "abc" ; 30 last fred: 31 while ($i ++ == 0) 32 { 33 s/ab/last fred/e ; 34 } 35 36 37 Exiting subroutine via %s 38 sub fred { last joe } 39 joe: { fred() } 40 41 Exiting eval via %s 42 fred: { eval "last fred" } 43 44 Exiting pseudo-block via %s 45 @a = (1,2) ; fred: @b = sort { last fred } @a ; 46 47 48 Deep recursion on subroutine \"%s\" 49 sub fred 50 { 51 fred() if $a++ < 200 52 } 53 54 fred() 55 56 (in cleanup) foo bar 57 package Foo; 58 DESTROY { die "foo bar" } 59 { bless [], 'Foo' for 1..10 } 60 61__END__ 62# pp_ctl.c 63use warnings 'syntax' ; 64format STDOUT = 65@<<< @<<< 661 67. 68write; 69EXPECT 70Not enough format arguments at - line 5. 711 72######## 73# pp_ctl.c 74no warnings 'syntax' ; 75format = 76@<<< @<<< 771 78. 79write ; 80EXPECT 811 82######## 83# pp_ctl.c 84use warnings 'exiting' ; 85$_ = "abc" ; 86 87while ($i ++ == 0) 88{ 89 s/ab/last/e ; 90} 91no warnings 'exiting' ; 92while ($i ++ == 0) 93{ 94 s/ab/last/e ; 95} 96EXPECT 97Exiting substitution via last at - line 7. 98######## 99# pp_ctl.c 100use warnings 'exiting' ; 101sub fred { last } 102{ fred() } 103no warnings 'exiting' ; 104sub joe { last } 105{ joe() } 106EXPECT 107Exiting subroutine via last at - line 3. 108######## 109# pp_ctl.c 110{ 111 eval "use warnings 'exiting' ; last;" 112} 113print STDERR $@ ; 114{ 115 eval "no warnings 'exiting' ;last;" 116} 117print STDERR $@ ; 118EXPECT 119Exiting eval via last at (eval 1) line 1. 120######## 121# pp_ctl.c 122use warnings 'exiting' ; 123@a = (1,2) ; 124@b = sort { last } @a ; 125no warnings 'exiting' ; 126@b = sort { last } @a ; 127EXPECT 128Exiting pseudo-block via last at - line 4. 129Can't "last" outside a loop block at - line 4. 130######## 131# pp_ctl.c 132use warnings 'exiting' ; 133$_ = "abc" ; 134fred: 135while ($i ++ == 0) 136{ 137 s/ab/last fred/e ; 138} 139no warnings 'exiting' ; 140while ($i ++ == 0) 141{ 142 s/ab/last fred/e ; 143} 144EXPECT 145Exiting substitution via last at - line 7. 146######## 147# pp_ctl.c 148use warnings 'exiting' ; 149sub fred { last joe } 150joe: { fred() } 151no warnings 'exiting' ; 152sub Fred { last Joe } 153Joe: { Fred() } 154EXPECT 155Exiting subroutine via last at - line 3. 156######## 157# pp_ctl.c 158joe: 159{ eval "use warnings 'exiting' ; last joe;" } 160print STDERR $@ ; 161Joe: 162{ eval "no warnings 'exiting' ; last Joe;" } 163print STDERR $@ ; 164EXPECT 165Exiting eval via last at (eval 1) line 1. 166######## 167# pp_ctl.c 168use warnings 'exiting' ; 169@a = (1,2) ; 170fred: @b = sort { last fred } @a ; 171no warnings 'exiting' ; 172Fred: @b = sort { last Fred } @a ; 173EXPECT 174Exiting pseudo-block via last at - line 4. 175Label not found for "last fred" at - line 4. 176######## 177# pp_ctl.c 178use warnings 'recursion' ; 179BEGIN { warn "PREFIX\n" ;} 180sub fred 181{ 182 fred() if $a++ < 200 183} 184 185fred() 186EXPECT 187Deep recursion on subroutine "main::fred" at - line 6. 188######## 189# pp_ctl.c 190no warnings 'recursion' ; 191BEGIN { warn "PREFIX\n" ;} 192sub fred 193{ 194 fred() if $a++ < 200 195} 196 197fred() 198EXPECT 199######## 200# pp_ctl.c 201use warnings 'misc' ; 202package Foo; 203DESTROY { die "@{$_[0]} foo bar" } 204{ bless ['A'], 'Foo' for 1..10 } 205{ bless ['B'], 'Foo' for 1..10 } 206EXPECT 207 (in cleanup) A foo bar at - line 4. 208 (in cleanup) A foo bar at - line 4. 209 (in cleanup) A foo bar at - line 4. 210 (in cleanup) A foo bar at - line 4. 211 (in cleanup) A foo bar at - line 4. 212 (in cleanup) A foo bar at - line 4. 213 (in cleanup) A foo bar at - line 4. 214 (in cleanup) A foo bar at - line 4. 215 (in cleanup) A foo bar at - line 4. 216 (in cleanup) A foo bar at - line 4. 217 (in cleanup) B foo bar at - line 4. 218 (in cleanup) B foo bar at - line 4. 219 (in cleanup) B foo bar at - line 4. 220 (in cleanup) B foo bar at - line 4. 221 (in cleanup) B foo bar at - line 4. 222 (in cleanup) B foo bar at - line 4. 223 (in cleanup) B foo bar at - line 4. 224 (in cleanup) B foo bar at - line 4. 225 (in cleanup) B foo bar at - line 4. 226 (in cleanup) B foo bar at - line 4. 227######## 228# pp_ctl.c 229no warnings 'misc' ; 230package Foo; 231DESTROY { die "@{$_[0]} foo bar" } 232{ bless ['A'], 'Foo' for 1..10 } 233{ bless ['B'], 'Foo' for 1..10 } 234EXPECT 235######## 236# pp_ctl.c 237use warnings; 238eval 'print $foo'; 239EXPECT 240Use of uninitialized value $foo in print at (eval 1) line 1. 241######## 242# pp_ctl.c 243use warnings; 244{ 245 no warnings; 246 eval 'print $foo'; 247} 248EXPECT 249######## 250# pp_ctl.c 251use warnings; 252eval 'use 5.006; use 5.10.0'; 253EXPECT 254######## 255# SKIP ? !$Config{default_inc_includes_dot} 256# NAME check warning for do with no . in @INC 257open my $fh, ">", "dounknown"; 258close $fh; 259do "dounknown"; 260do "./dounknown"; 261no warnings 'deprecated'; 262do "dounknown"; 263do "./dounknown"; 264unlink "dounknown"; 265EXPECT 266do "dounknown" failed, '.' is no longer in @INC; did you mean do "./dounknown" at - line 3. 267