我發現這個代碼片段中開始perl的書(OOP上篇):爲什麼要創建perl對象屬性散列的淺表副本?
1 sub new {
2 my ($class, $arg) = @_;
3 my $self = bless {}, $class;
4 $self->_initialize;
5
6 return $self;
7 }
8 sub _initialize {
9 my ($self, $arg) = @_;
10 my $class = ref $self;
11 my %arg = %$arg;
12
13 $self->{attributes}{name} = $arg{name};
14 ...
15 }
在LINE_11,我覺得你並不真的需要創建arg
裁判的淺表副本。因爲我們可以簡單地使用取消引用運算符->
來獲取散列值。爲什麼創建一個淺拷貝是否有很好的理由?僅僅是爲了使代碼更具可讀性?這被認爲是perl OOP的最佳實踐嗎?