1__END__ 2 3# Error - not predeclaring a sub 4Fred 1,2 ; 5sub Fred {} 6EXPECT 7Number found where operator expected at - line 3, near "Fred 1" 8 (Do you need to predeclare Fred?) 9syntax error at - line 3, near "Fred 1" 10Execution of - aborted due to compilation errors. 11######## 12 13# Error - not predeclaring a sub in time 14Fred 1,2 ; 15use subs qw( Fred ) ; 16sub Fred {} 17EXPECT 18Number found where operator expected at - line 3, near "Fred 1" 19 (Do you need to predeclare Fred?) 20syntax error at - line 3, near "Fred 1" 21BEGIN not safe after errors--compilation aborted at - line 4. 22######## 23 24# AOK 25use subs qw( Fred) ; 26Fred 1,2 ; 27sub Fred { print $_[0] + $_[1], "\n" } 28EXPECT 293 30######## 31 32# override a built-in function 33use subs qw( open ) ; 34open 1,2 ; 35sub open { print $_[0] + $_[1], "\n" } 36EXPECT 373 38######## 39 40# override a built-in function, call after definition 41use subs qw( open ) ; 42sub open { print $_[0] + $_[1], "\n" } 43open 1,2 ; 44EXPECT 453 46######## 47 48# override a built-in function, call with () 49use subs qw( open ) ; 50open (1,2) ; 51sub open { print $_[0] + $_[1], "\n" } 52EXPECT 533 54######## 55 56# override a built-in function, call with () after definition 57use subs qw( open ) ; 58sub open { print $_[0] + $_[1], "\n" } 59open (1,2) ; 60EXPECT 613 62######## 63 64--FILE-- abc 65Fred 1,2 ; 661; 67--FILE-- 68use subs qw( Fred ) ; 69require "./abc" ; 70sub Fred { print $_[0] + $_[1], "\n" } 71EXPECT 723 73######## 74 75# check that it isn't affected by block scope 76{ 77 use subs qw( Fred ) ; 78} 79Fred 1, 2; 80sub Fred { print $_[0] + $_[1], "\n" } 81EXPECT 823 83######## 84 85# Error - not predeclaring a sub 86use utf8; 87use open qw( :utf8 :std ); 88Frèd 1,2 ; 89sub Frèd {} 90EXPECT 91Number found where operator expected at - line 5, near "Frèd 1" 92 (Do you need to predeclare Frèd?) 93syntax error at - line 5, near "Frèd 1" 94Execution of - aborted due to compilation errors. 95######## 96 97# Error - not predeclaring a sub in time 98use utf8; 99use open qw( :utf8 :std ); 100ふれど 1,2 ; 101use subs qw( ふれど ) ; 102sub ふれど {} 103EXPECT 104Number found where operator expected at - line 5, near "ふれど 1" 105 (Do you need to predeclare ふれど?) 106syntax error at - line 5, near "ふれど 1" 107BEGIN not safe after errors--compilation aborted at - line 6. 108