The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
  perly.y	AOK

  dep() => deprecate("\"do\" to call subroutines") 
  Use of "do" to call subroutines is deprecated

	sub fred {} do fred()
	sub fred {} do fred(1)
	sub fred {} $a = "fred" ; do $a()
	sub fred {} $a = "fred" ; do $a(1)

  Use of qw(...) as parentheses is deprecated

	if qw(a) {}
	unless qw(a) {}
	if (0) {} elsif qw(a) {}
	given qw(a) {}
	when qw(a) {}
	while qw(a) {}
	until qw(a) {}
	foreach $x qw(a b c) {}
	foreach my $x qw(a b c) {}
	$obj->meth qw(a b c)
	do foo qw(a b c)
	do $subref qw(a b c)
	&foo qw(a b c)
	$a[0] qw(a b c)

__END__
# perly.y
use warnings 'deprecated' ;
sub fred {} 
do fred() ;
do fred(1) ;
$a = "fred" ; 
do $a() ;
do $a(1) ;
no warnings 'deprecated' ;
do fred() ;
do fred(1) ;
$a = "fred" ; 
do $a() ;
do $a(1) ;
EXPECT
Use of "do" to call subroutines is deprecated at - line 4.
Use of "do" to call subroutines is deprecated at - line 5.
Use of "do" to call subroutines is deprecated at - line 7.
Use of "do" to call subroutines is deprecated at - line 8.
########
use warnings qw(deprecated void);
if qw(a) { print "x0\n"; } else { }
if qw(0) { print "x1\n"; } else { }
if qw(z a) { print "x2\n"; } else { }
if qw(z 0) { print "x3\n"; } else { }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
Use of qw(...) as parentheses is deprecated at - line 4.
Useless use of a constant (z) in void context at - line 4.
Use of qw(...) as parentheses is deprecated at - line 5.
Useless use of a constant (z) in void context at - line 5.
x0
x2
########
if qw() { print "x0\n"; } else { }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 1.
syntax error at - line 1, near "if qw()"
Execution of - aborted due to compilation errors.
########
use warnings qw(deprecated void);
unless qw(a) { print "x0\n"; } else { }
unless qw(0) { print "x1\n"; } else { }
unless qw(z a) { print "x2\n"; } else { }
unless qw(z 0) { print "x3\n"; } else { }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
Use of qw(...) as parentheses is deprecated at - line 4.
Useless use of a constant (z) in void context at - line 4.
Use of qw(...) as parentheses is deprecated at - line 5.
Useless use of a constant (z) in void context at - line 5.
x1
x3
########
unless qw() { print "x0\n"; } else { }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 1.
syntax error at - line 1, near "unless qw()"
Execution of - aborted due to compilation errors.
########
use warnings qw(deprecated void);
if(0) { print "eek\n"; } elsif qw(a) { print "x0\n"; } else { }
if(0) { print "eek\n"; } elsif qw(0) { print "x1\n"; } else { }
if(0) { print "eek\n"; } elsif qw(z a) { print "x2\n"; } else { }
if(0) { print "eek\n"; } elsif qw(z 0) { print "x3\n"; } else { }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
Use of qw(...) as parentheses is deprecated at - line 4.
Useless use of a constant (z) in void context at - line 4.
Use of qw(...) as parentheses is deprecated at - line 5.
Useless use of a constant (z) in void context at - line 5.
x0
x2
########
if(0) { print "eek\n"; } elsif qw() { print "x0\n"; } else { }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 1.
syntax error at - line 1, near "elsif qw()"
Execution of - aborted due to compilation errors.
########
use warnings qw(deprecated void); use feature "switch";
given qw(a) { print "x0 $_\n"; }
given qw(z a) { print "x1 $_\n"; }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
Useless use of a constant (z) in void context at - line 3.
x0 a
x1 a
########
use feature "switch";
given qw() { print "x0\n"; }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
syntax error at - line 2, near "given qw()"
Execution of - aborted due to compilation errors.
########
use warnings qw(deprecated void); use feature "switch";
given("a") { when qw(a) { print "x0\n"; } }
given("a") { when qw(b) { print "x1\n"; } }
given("a") { when qw(z a) { print "x2\n"; } }
given("a") { when qw(z b) { print "x3\n"; } }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
Use of qw(...) as parentheses is deprecated at - line 4.
Useless use of a constant (z) in void context at - line 4.
Use of qw(...) as parentheses is deprecated at - line 5.
Useless use of a constant (z) in void context at - line 5.
x0
x2
########
use feature "switch";
given("a") { when qw() { print "x0\n"; } }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
syntax error at - line 2, near "when qw()"
syntax error at - line 2, near "} }"
Execution of - aborted due to compilation errors.
########
use warnings qw(deprecated void);
while qw(a) { print "x0\n"; last; } {;}
while qw(0) { print "x1\n"; last; } {;}
while qw(z a) { print "x2\n"; last; } {;}
while qw(z 0) { print "x3\n"; last; } {;}
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
Use of qw(...) as parentheses is deprecated at - line 4.
Useless use of a constant (z) in void context at - line 4.
Use of qw(...) as parentheses is deprecated at - line 5.
Useless use of a constant (z) in void context at - line 5.
x0
x2
########
while qw() { print "x0\n"; last; }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 1.
x0
########
use warnings qw(deprecated void);
until qw(a) { print "x0\n"; last; } {;}
until qw(0) { print "x1\n"; last; } {;}
until qw(z a) { print "x2\n"; last; } {;}
until qw(z 0) { print "x3\n"; last; } {;}
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
Use of qw(...) as parentheses is deprecated at - line 4.
Useless use of a constant (z) in void context at - line 4.
Use of qw(...) as parentheses is deprecated at - line 5.
Useless use of a constant (z) in void context at - line 5.
x1
x3
########
until qw() { print "x0\n"; } else { }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 1.
syntax error at - line 1, near "until qw()"
Execution of - aborted due to compilation errors.
########
foreach $x qw(a b c) { print $x, "\n"; }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 1.
a
b
c
########
foreach $x qw() { print $x, "\n"; }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 1.
syntax error at - line 1, near "$x qw()"
Execution of - aborted due to compilation errors.
########
foreach my $x qw(a b c) { print $x, "\n"; }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 1.
a
b
c
########
foreach my $x qw() { print $x, "\n"; }
EXPECT
Use of qw(...) as parentheses is deprecated at - line 1.
syntax error at - line 1, near "$x qw()"
Execution of - aborted due to compilation errors.
########
sub a5c85eef3bf30129e20989e96b099d13::foo { print "+", join(":", @_), "\n"; }
"a5c85eef3bf30129e20989e96b099d13"->foo qw(); {;}
"a5c85eef3bf30129e20989e96b099d13"->foo qw(a b c); {;}
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
+a5c85eef3bf30129e20989e96b099d13
+a5c85eef3bf30129e20989e96b099d13:a:b:c
########
sub fd4de2af1449cec72693c36842d41862 { print "+", join(":", @_), "\n"; }
do fd4de2af1449cec72693c36842d41862 qw(); {;}
do fd4de2af1449cec72693c36842d41862 qw(a b c); {;}
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of "do" to call subroutines is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
Use of "do" to call subroutines is deprecated at - line 3.
+
+a:b:c
########
$subref = sub { print "+", join(":", @_), "\n"; };
do $subref qw();
do $subref qw(a b c);
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of "do" to call subroutines is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
Use of "do" to call subroutines is deprecated at - line 3.
+
+a:b:c
########
sub e293a8f7cb38880a48867fcb336448e5 { print "+", join(":", @_), "\n"; }
&e293a8f7cb38880a48867fcb336448e5 qw();
&e293a8f7cb38880a48867fcb336448e5 qw(a b c);
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
+
+a:b:c
########
my @a = (sub { print "+", join(":", @_), "\n"; });
$a[0] qw();
$a[0] qw(a b c);
EXPECT
Use of qw(...) as parentheses is deprecated at - line 2.
Use of qw(...) as parentheses is deprecated at - line 3.
+
+a:b:c