我试图编写一个子例程来演示如何将数字子例程作为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";
答案 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";