Perl通过参数传递将标量传递到子例程
如何通过参数传递将标量转换为子例程?我已经编写了以下代码,并希望将Perl通过参数传递将标量传递到子例程,perl,Perl,如何通过参数传递将标量转换为子例程?我已经编写了以下代码,并希望将$radius从子区域(半径)传递到子区域(圆) #!/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 {
$radius
从子区域(半径)
传递到子区域(圆)
#!/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";
#/usr/bin/env perl
使用警告;
严格使用;
使用Math::Trig':pi';
子半径{
打印“输入圆的半径:\n”;
我的$radius=;
}
子域{
my$radius=获取半径();
我的$area=0;
$area=pi*($radius**2);
返回$区域;
}
my$area=面积\圆;
打印“区域为:$area\n”;
您可以使用以下任何方法
#!/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";
#/usr/bin/env perl
使用警告;
严格使用;
使用Math::Trig':pi';
我的$radius=0#####
子半径{
打印“输入圆的半径:\n”;
$radius=;
}
子域{
获取_半径()#####
我的$area=0;
$area=pi*($radius**2);
返回$区域;
}
my$area=面积\圆;
打印“区域为:$area\n”;
或
#/usr/bin/env perl
使用警告;
严格使用;
使用Math::Trig':pi';
子半径{
打印“输入圆的半径:\n”;
我的$radius=;
返回$radius
}
子域{
my$radius=获取半径();
我的$area=0;
$area=pi*($radius**2);
返回$区域;
}
my$area=面积\圆;
打印“区域为:$area\n”;
子节点从@uu数组中获取参数,如下所示:
sub whatever {
my ($param1, $param2) = @_;
}
或
在代码的上下文中:
#!/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";
#/usr/bin/env perl
使用警告;
严格使用;
使用Math::Trig':pi';
子半径{
打印“输入圆的半径:\n”;
我的$radius=;
返回$radius;
}
子域{
我的($radius)=@;
我的$area=0;
$area=pi*($radius**2);
返回$区域;
}
my$radius=获取半径;
my$area=面积\圆($半径);
打印“区域为:$area\n”;
请注意半径现在是如何传递到area_circle的,这样area_circle现在就不再绑定到get_radius子节点,并且现在可以计算圆的面积,无论从何处获取半径。您以前的版本是正确的方法。问题是什么?你的剧本写得很好。
sub whatever {
my $param1 = $_[0];
my $param2 = $_[1];
}
#!/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";