2017-02-17 15 views

答えて

2

あまり魔法のアプローチは、参照を渡すことです。

use strict; 
use warnings; 

sub modify_a 
{ 
     my ($a_ref) = @_; 
     $$a_ref = 10; 
} 

{ 
     my $a = 5; 
     modify_a(\$a); 
     print "$a\n"; 
} 
+1

'$ a'や' $ b'を変数として使うことを避けるべきです。なぜなら、 'sort'関数のために予約されているからです。 – stevieb

4
sub modify_a { 
    $_[0] *= 2; 
} 

@_の要素が渡された値にエイリアスされているので、あなたが直接これを変更した場合、あなたは、呼び出し元の値を変更します。これは時には便利なこともありますが、通話者にとっては通常は驚きであるため、一般的にはお勧めしません。

+0

渡される変数のリストが長くて、名前で参照したいのですが? – jeffythedragonslayer

+0

@jeffythedragonslayer - Data :: Aliasモジュールをチェックアウトします。しかし、驚きの要因のため、参照はIMOより優れています。 – Tanktalus

+0

私はちょうど私が参照でそれを理解したと言いました、私はデータ::エイリアスもチェックアウトします。 – jeffythedragonslayer

関連する問題