Perl Sub例程获取数字的平方

时间:2018-11-26 17:01:12

标签: perl subroutine

我试图编写一个子例程来演示如何将数字子例程作为Perl中的函数来使用。我不知道如何在perl中使用@_运算符

#!/usr/bin/perl
use strict ;
use warnings ;
my $number = $ARGV[0] ;
if (not defined $number) {
        die " I need a number to multiply" }

    sub square {
        my $number = shift ;
        print "$number\n"
        return $number * $number ;
}

my $result = square() ;
print "$result";

2 个答案:

答案 0 :(得分:2)

您的子例程需要一个数字作为第一个参数。您可以在执行操作时访问参数:

my $number = shift;

实际上大致等同于:

my ($number) = @_;

如您所见,@ _是一个特殊变量,表示传递给子例程的参数列表。

您的代码中的问题是您没有将任何参数传递给您的sub。这:

my $result = square();

应写为:

my $result = square($number);

答案 1 :(得分:2)

您没有将$number传递给您的潜艇。试试这个:

#!/usr/bin/perl

use strict ;
use warnings ;

my $number = $ARGV[0] ;

die "I need a number to multiply" unless(defined $number);

sub square {
    my $number = shift ;
    print "$number\n";
    return $number * $number;
}

my $result = square($number);
print "$result\n";