toke.c	AOK

    we seem to have lost a few ambiguous warnings!!

 
             	1 if $a EQ $b ;
             	1 if $a NE $b ;
             	1 if $a LT $b ;
             	1 if $a GT $b ;
             	1 if $a GE $b ;
             	1 if $a LE $b ;
 		$a = <<;
 		Use of comma-less variable list is deprecated 
		(called 3 times via depcom)

     \1 better written as $1 
 	use warning 'syntax' ;
 	s/(abc)/\1/;
 
     warn(warn_nosemi) 
     Semicolon seems to be missing
	$a = 1
	&time ;


     Reversed %c= operator 
	my $a =+ 2 ;
	$a =- 2 ;
	$a =* 2 ;
	$a =% 2 ;
	$a =& 2 ;
	$a =. 2 ;
	$a =^ 2 ;
	$a =| 2 ;
	$a =< 2 ;
	$a =/ 2 ;

     Multidimensional syntax %.*s not supported 
	my $a = $a[1,2] ;

     You need to quote \"%s\"" 
	sub fred {} ; $SIG{TERM} = fred;

     Scalar value %.*s better written as $%.*s" 
	@a[3] = 2;
	@a{3} = 2;

     Can't use \\%c to mean $%c in expression 
	$_ = "ab" ; s/(ab)/\1/e;

     Unquoted string "abc" may clash with future reserved word at - line 3.
     warn(warn_reserved	
	$a = abc;

     chmod: mode argument is missing initial 0 
	chmod 3;

     Possible attempt to separate words with commas 
	@a = qw(a, b, c) ;

     Possible attempt to put comments in qw() list 
	@a = qw(a b # c) ;

     umask: argument is missing initial 0 
	umask 3;

     %s (...) interpreted as function 
	print ("")
	printf ("")
	sort ("")

     Ambiguous use of %c{%s%s} resolved to %c%s%s 
	$a = ${time[2]}
	$a = ${time{2}}


     Ambiguous use of %c{%s} resolved to %c%s
	$a = ${time}
	sub fred {} $a = ${fred}

     Misplaced _ in number 
	$a = 1_2;
	$a = 1_2345_6;

    Bareword \"%s\" refers to nonexistent package
	$a = FRED:: ;

    Ambiguous call resolved as CORE::%s(), qualify as such or use &
	sub time {} 
	my $a = time()

    Use of \\x{} without utf8 declaration
	$_ = " \x{123} " ;


    \x%.*s will produce malformed UTF-8 character; use \x{%.*s} for that
        use utf8 ; 
	$_ = "\xffe"
     
__END__
# toke.c 
use warning 'deprecated' ;
1 if $a EQ $b ;
1 if $a NE $b ;
1 if $a GT $b ;
1 if $a LT $b ;
1 if $a GE $b ;
1 if $a LE $b ;
EXPECT
Use of EQ is deprecated at - line 3.
Use of NE is deprecated at - line 4.
Use of GT is deprecated at - line 5.
Use of LT is deprecated at - line 6.
Use of GE is deprecated at - line 7.
Use of LE is deprecated at - line 8.
########
# toke.c
use warning 'deprecated' ;
format STDOUT =
@<<<  @|||  @>>>  @>>>
$a    $b    "abc" 'def'
.
($a, $b) = (1,2,3);
write;
EXPECT
Use of comma-less variable list is deprecated at - line 5.
Use of comma-less variable list is deprecated at - line 5.
Use of comma-less variable list is deprecated at - line 5.
1      2     abc   def
########
# toke.c
use warning 'deprecated' ;
$a = <<;

EXPECT
Use of bare << to mean <<"" is deprecated at - line 3.
########
# toke.c
use warning 'syntax' ;
s/(abc)/\1/;
EXPECT
\1 better written as $1 at - line 3.
########
# toke.c
use warning 'semicolon' ;
$a = 1
&time ;
EXPECT
Semicolon seems to be missing at - line 3.
########
# toke.c
BEGIN {
    # Scalars leaked: due to syntax errors
    $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
}
use warning 'syntax' ;
my $a =+ 2 ;
$a =- 2 ;
$a =* 2 ;
$a =% 2 ;
$a =& 2 ;
$a =. 2 ;
$a =^ 2 ;
$a =| 2 ;
$a =< 2 ;
$a =/ 2 ;
EXPECT
Reversed += operator at - line 7.
Reversed -= operator at - line 8.
Reversed *= operator at - line 9.
Reversed %= operator at - line 10.
Reversed &= operator at - line 11.
Reversed .= operator at - line 12.
syntax error at - line 12, near "=."
Reversed ^= operator at - line 13.
syntax error at - line 13, near "=^"
Reversed |= operator at - line 14.
syntax error at - line 14, near "=|"
Reversed <= operator at - line 15.
Unterminated <> operator at - line 15.
########
# toke.c
use warning 'syntax' ;
my $a = $a[1,2] ;
EXPECT
Multidimensional syntax $a[1,2] not supported at - line 3.
########
# toke.c
use warning 'syntax' ;
sub fred {} ; $SIG{TERM} = fred;
EXPECT
You need to quote "fred" at - line 3.
########
# toke.c
use warning 'syntax' ;
@a[3] = 2;
@a{3} = 2;
EXPECT
Scalar value @a[3] better written as $a[3] at - line 3.
Scalar value @a{3} better written as $a{3} at - line 4.
########
# toke.c
use warning 'syntax' ;
$_ = "ab" ; 
s/(ab)/\1/e;
EXPECT
Can't use \1 to mean $1 in expression at - line 4.
########
# toke.c
use warning 'reserved' ;
$a = abc;
EXPECT
Unquoted string "abc" may clash with future reserved word at - line 3.
########
# toke.c
use warning 'octal' ;
chmod 3;
EXPECT
chmod: mode argument is missing initial 0 at - line 3, at end of line
########
# toke.c
use warning 'syntax' ;
@a = qw(a, b, c) ;
EXPECT
Possible attempt to separate words with commas at - line 3.
########
# toke.c
use warning 'syntax' ;
@a = qw(a b #) ;
EXPECT
Possible attempt to put comments in qw() list at - line 3.
########
# toke.c
use warning 'octal' ;
umask 3;
EXPECT
umask: argument is missing initial 0 at - line 3, at end of line
########
# toke.c
use warning 'syntax' ;
print ("")
EXPECT
print (...) interpreted as function at - line 3.
########
# toke.c
use warning 'syntax' ;
printf ("")
EXPECT
printf (...) interpreted as function at - line 3.
########
# toke.c
use warning 'syntax' ;
sort ("")
EXPECT
sort (...) interpreted as function at - line 3.
########
# toke.c
use warning 'ambiguous' ;
$a = ${time[2]};
EXPECT
Ambiguous use of ${time[...]} resolved to $time[...] at - line 3.
########
# toke.c
use warning 'ambiguous' ;
$a = ${time{2}};
EXPECT
Ambiguous use of ${time{...}} resolved to $time{...} at - line 3.
########
# toke.c
use warning 'ambiguous' ;
$a = ${time} ;
EXPECT
Ambiguous use of ${time} resolved to $time at - line 3.
########
# toke.c
use warning 'ambiguous' ;
sub fred {}
$a = ${fred} ;
EXPECT
Ambiguous use of ${fred} resolved to $fred at - line 4.
########
# toke.c
use warning 'syntax' ;
$a = 1_2;
$a = 1_2345_6;
EXPECT
Misplaced _ in number at - line 3.
Misplaced _ in number at - line 4.
Misplaced _ in number at - line 4.
########
# toke.c
use warning 'unsafe' ;
#line 25 "bar"
$a = FRED:: ;
EXPECT
Bareword "FRED::" refers to nonexistent package at bar line 25.
########
# toke.c
use warning 'ambiguous' ;
sub time {}
my $a = time() 
EXPECT
Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4.
########
# toke.c
use warning 'utf8' ;
eval <<'EOE';
{
#line 30 "foo"
  $_ = " \x{123} " ;
}
EOE
EXPECT
Use of \x{} without utf8 declaration at foo line 30.
########
# toke.c
use warning 'utf8' ;
use utf8 ;
$_ = " \xffe " ;
EXPECT
\xff will produce malformed UTF-8 character; use \x{ff} for that at - line 4.
