1Check existing $^W functionality 2 3 4__END__ 5 6# warnable code, warnings disabled 7$a =+ 3 ; 8EXPECT 9 10######## 11-w 12# warnable code, warnings enabled via command line switch 13$a =+ 3 ; 14EXPECT 15Reversed += operator at - line 3. 16Name "main::a" used only once: possible typo at - line 3. 17######## 18#! perl -w 19# warnable code, warnings enabled via #! line 20$a =+ 3 ; 21EXPECT 22Reversed += operator at - line 3. 23Name "main::a" used only once: possible typo at - line 3. 24######## 25 26# warnable code, warnings enabled via compile time $^W 27BEGIN { $^W = 1 } 28$a =+ 3 ; 29EXPECT 30Reversed += operator at - line 4. 31Name "main::a" used only once: possible typo at - line 4. 32######## 33 34# compile-time warnable code, warnings enabled via runtime $^W 35# so no warning printed. 36$^W = 1 ; 37$a =+ 3 ; 38EXPECT 39 40######## 41 42# warnable code, warnings enabled via runtime $^W 43$^W = 1 ; 44my $b ; chop $b ; 45EXPECT 46Use of uninitialized value $b in scalar chop at - line 4. 47######## 48 49# warnings enabled at compile time, disabled at run time 50BEGIN { $^W = 1 } 51$^W = 0 ; 52my $b ; chop $b ; 53EXPECT 54 55######## 56 57# warnings disabled at compile time, enabled at run time 58BEGIN { $^W = 0 } 59$^W = 1 ; 60my $b ; chop $b ; 61EXPECT 62Use of uninitialized value $b in scalar chop at - line 5. 63######## 64-w 65--FILE-- abcd 66my $b ; chop $b ; 671 ; 68--FILE-- 69require "./abcd"; 70EXPECT 71Use of uninitialized value $b in scalar chop at ./abcd line 1. 72######## 73 74--FILE-- abcd 75my $b ; chop $b ; 761 ; 77--FILE-- 78#! perl -w 79require "./abcd"; 80EXPECT 81Use of uninitialized value $b in scalar chop at ./abcd line 1. 82######## 83 84--FILE-- abcd 85my $b ; chop $b ; 861 ; 87--FILE-- 88$^W =1 ; 89require "./abcd"; 90EXPECT 91Use of uninitialized value $b in scalar chop at ./abcd line 1. 92######## 93 94--FILE-- abcd 95$^W = 0; 96my $b ; chop $b ; 971 ; 98--FILE-- 99$^W =1 ; 100require "./abcd"; 101EXPECT 102 103######## 104 105--FILE-- abcd 106$^W = 1; 1071 ; 108--FILE-- 109$^W =0 ; 110require "./abcd"; 111my $b ; chop $b ; 112EXPECT 113Use of uninitialized value $b in scalar chop at - line 3. 114######## 115 116$^W = 1; 117eval 'my $b ; chop $b ;' ; 118print $@ ; 119EXPECT 120Use of uninitialized value $b in scalar chop at (eval 1) line 1. 121######## 122 123eval '$^W = 1;' ; 124print $@ ; 125my $b ; chop $b ; 126EXPECT 127Use of uninitialized value $b in scalar chop at - line 4. 128######## 129 130eval {$^W = 1;} ; 131print $@ ; 132my $b ; chop $b ; 133EXPECT 134Use of uninitialized value $b in scalar chop at - line 4. 135######## 136 137{ 138 local ($^W) = 1; 139} 140my $b ; chop $b ; 141EXPECT 142 143######## 144 145my $a ; chop $a ; 146{ 147 local ($^W) = 1; 148 my $b ; chop $b ; 149} 150my $c ; chop $c ; 151EXPECT 152Use of uninitialized value $b in scalar chop at - line 5. 153######## 154-w 155-e undef 156EXPECT 157Use of uninitialized value in -e at - line 2. 158######## 159 160$^W = 1 + 2 ; 161EXPECT 162 163######## 164 165$^W = $a ; 166EXPECT 167 168######## 169 170sub fred {} 171$^W = fred() ; 172EXPECT 173 174######## 175 176sub fred { my $b ; chop $b ;} 177{ local $^W = 0 ; 178 fred() ; 179} 180EXPECT 181 182######## 183 184sub fred { my $b ; chop $b ;} 185{ local $^W = 1 ; 186 fred() ; 187} 188EXPECT 189Use of uninitialized value $b in scalar chop at - line 2. 190