Perl是否在一个sub中初始化变量,该变量在声明变量之前不返回任何内容

时间:2017-11-16 03:51:10

标签: perl

sub Thing {
  my $self = shift;
  if ($self->{validationTest} != 1) {return;}     

  my $data = 'Hello, World!';
  return $data;    
}

如果IF条件为真且子数字提前返回,$ data会发生什么?

2 个答案:

答案 0 :(得分:4)

[你问变量的初始化何时发生,但我认为你在谈论将字符串Hello, World!赋值给$data。我正在回答这个问题。]

在评估赋值时会发生赋值,如果子函数在到达赋值之前返回,则永远不会发生。

答案 1 :(得分:-2)

if条件为真时,Thing()会返回undef。甚至没有创建变量$data