2016-03-30 13 views
0

パラメータ渡しによってスカラーをサブルーチンに転送するにはどうすればよいですか?私は次のコードを書いて、をsub get_radiusからsub area_circleに渡したいと思います。Perlはパラメータを渡すことでスカラーをサブルーチンに変換します

#!/usr/bin/env perl 

use warnings; 
use strict; 
use Math::Trig ':pi'; 


sub get_radius { 
    print "Enter the radius of the circle: \n"; 
    my $radius = <STDIN>; 

} 

sub area_circle { 
    my $radius = get_radius(); 
    my $area = 0; 
    $area = pi * ($radius **2); 
    return $area; 
} 

my $area = area_circle; 
print "The area is: $area \n"; 
+0

あなたの以前のバージョンが正しい方法です。 –

+0

問題は何ですか?あなたのスクリプトは正常に動作しています。 – Toto

答えて

0

潜水艦は、このように、@_配列からそれらのパラメータを取る:

sub whatever { 
    my ($param1, $param2) = @_; 
} 

または

あなたのコードの文脈では
sub whatever { 
    my $param1 = $_[0]; 
    my $param2 = $_[1]; 
} 

:area_circleはもはやget_radiusサブに接続されていないと、今面積を計算できるように、半径が今、area_circleに渡され方

#!/usr/bin/env perl 

use warnings; 
use strict; 
use Math::Trig ':pi'; 

sub get_radius { 
    print "Enter the radius of the circle: \n"; 
    my $radius = <STDIN>; 
    return $radius; 
} 

sub area_circle { 
    my ($radius) = @_; 

    my $area = 0; 
    $area = pi * ($radius **2); 
    return $area; 
} 

my $radius = get_radius; 
my $area = area_circle($radius); 
print "The area is: $area \n"; 

注意半径がどこからフェッチされていても円の

0

あなたは、次のいずれかの方法を使用することができます...

#!/usr/bin/env perl 
use warnings; 
use strict; 
use Math::Trig ':pi'; 

my $radius = 0; ##### 
sub get_radius { 
    print "Enter the radius of the circle: \n"; 
    $radius = <STDIN>; 
} 

sub area_circle { 
    get_radius(); ##### 
    my $area = 0; 
    $area = pi * ($radius **2); 
    return $area; 
} 

my $area = area_circle; 
print "The area is: $area \n"; 

OR

#!/usr/bin/env perl 
use warnings; 
use strict; 
use Math::Trig ':pi'; 

sub get_radius { 
    print "Enter the radius of the circle: \n"; 
    my $radius = <STDIN>; 
    return $radius 
} 

sub area_circle { 
    my $radius = get_radius(); 
    my $area = 0; 
    $area = pi * ($radius **2); 
    return $area; 
} 

my $area = area_circle; 
print "The area is: $area \n"; 
関連する問題