2011-03-29 81 views
1

如果我有一個如下所示的Java類,那麼對於相同的Perl表示形式是什麼?將Perl數組作爲對象變量

class Temp { 
    int my_int; 
    int my_array[]; 

    Temp() { 
    } 
}; 

具體來說,我有興趣知道如何使用數組作爲對象變量?

回答

7

簡短的回答是:(!多)

package Temp; 

sub new { 
    my $self = bless { 
     'my_int' => 0, 
     'my_array' => [] # The trick here is to use an array *reference* 
         # hence the square brackets rather than() 
    }; 
    return $self; 
} 

對於較長的答案,看看perlrefperllol,並perlboot的介紹,參考文獻列表,列表和OOP集訓,分別。一旦你掌握了基本知識,在Perl中考慮使用Moose來實現更高級的OOP方法。

+2

在...看看和駝鹿 – ysth 2011-03-29 04:40:30

+0

良好的通話 - 補充說,我的答案。 – 2011-03-29 04:43:05

4

使用Moose,類可以寫成:

package Temp; 

use Moose; 

has 'my_int' => (
    'is' => 'rw', 
    'isa' => 'Int', 
); 

has 'my_array' => (
    'is' => 'rw', 
    'isa' => 'ArrayRef[Int]', 
); 

__PACKAGE__->meta->make_immutable();