返回值

就如其他Perl表达式,调用子程序也会在不同上下文中有不同的行为。你可以使用wantarray函数(也可以叫做wantlist)来检测子程序处于什么上下文当中,并返回一个合适的结果到上下文:

 
  
  1. sub contextualSubroutine {  
  2.     # Caller wants a list. Return a list  
  3.     return ("Everest", "K2", "Etna") if wantarray;  
  4.  
  5.     # Caller wants a scalar. Return a scalar  
  6.     return 3;  
  7. }  
  8.  
  9. my @array = contextualSubroutine();  
  10. print @array; # "EverestK2Etna"  
  11.  
  12. my $scalar = contextualSubroutine();  
  13. print $scalar; # "3"