sub c { my $context= wantarray ? "list" : defined wantarray ? "scalar" : "void"; warn "$context( @_ )\n"; return( 'a', 'b' ); } sub t { return( c("a"), c("b") ); } my $scalar= ( c("one"), c("two"), c("three") ); warn $/; $scalar= t(); __END__ void( one ) void( two ) scalar( three ) scalar( a ) scalar( b ) #### #!/usr/bin/perl -w use strict; my $scalar= ( 1, 2, 3 ); sub t { return( 1, 2, 3 ); } $scalar= t(); __END__ Useless use of a constant in void context at - line 3.