定義 Perl 類的成員函式
其他面向物件的語言有資料安全的概念,以防止程式設計師直接更改物件資料,並提供訪問器方法修改物件資料。Perl 沒有私有變數,但我們仍然可以使用輔助方法的概念操作物件資料。
讓我們定義一個獲取個人姓名的輔助方法 −
sub getFirstName { return $self->{_firstName}; }
另一個設定個人姓名的輔助函式 −
sub setFirstName { my ( $self, $firstName ) = @_; $self->{_firstName} = $firstName if defined($firstName); return $self->{_firstName}; }
現在讓我們來看看完整的示例:將“Person”包和輔助函式保留在 Person.pm 檔案中。
#!/usr/bin/perl package Person; sub new { my $class = shift; my $self = { _firstName => shift, _lastName => shift, _ssn => shift, }; # Print all the values just for clarification. print "First Name is $self->{_firstName}\n"; print "Last Name is $self->{_lastName}\n"; print "SSN is $self->{_ssn}\n"; bless $self, $class; return $self; } sub setFirstName { my ( $self, $firstName ) = @_; $self->{_firstName} = $firstName if defined($firstName); return $self->{_firstName}; } sub getFirstName { my( $self ) = @_; return $self->{_firstName}; } 1;
現在,讓我們如下在 employee.pl 檔案中使用 Person 物件 −
#!/usr/bin/perl use Person; $object = new Person( "Mohammad", "Saleem", 23234345); # Get first name which is set using constructor. $firstName = $object->getFirstName(); print "Before Setting First Name is : $firstName\n"; # Now Set first name using helper function. $object->setFirstName( "Mohd." ); # Now get first name set by helper function. $firstName = $object->getFirstName(); print "Before Setting First Name is : $firstName\n";
執行以上程式時,會產生以下結果 −
First Name is Mohammad Last Name is Saleem SSN is 23234345 Before Setting First Name is : Mohammad Before Setting First Name is : Mohd.
廣告