Perl 中的預設自動載入


Perl 提供了一項任何其他程式語言中沒有的功能:一個預設子例程。這意味著,如果您定義了一個名為  AUTOLOAD() 的函式,那麼對未定義子例程的任何呼叫都將自動呼叫 AUTOLOAD() 函式。缺少子例程的名稱可作為 $AUTOLOAD 在此子例程中訪問。

預設自動載入功能對於錯誤處理非常有用。以下是如何實現 AUTOLOAD 的一個示例,您可以透過自己的方式實現此函式。

sub AUTOLOAD {
   my $self = shift;
   my $type = ref ($self) || croak "$self is not an object";
   my $field = $AUTOLOAD;
   $field =~ s/.*://;
   unless (exists $self->{$field}) {
      croak "$field does not exist in object/class $type";
   }
   if (@_) {
      return $self->($name) = shift;
   } else {
      return $self->($name);
   }
}

更新於: 02-Dec-2019

121 瀏覽

開啟您的 職業生涯

完成課程,獲得認證

開始吧
廣告
© . All rights reserved.