perl if elsif返回-编译错误
我有以下子例程产生此错误,但我不明白原因: C:…pl第44行,靠近“May”的main::formatdate没有足够的参数 由于编译错误,C:…pl的执行被中止 代码: 你应该读书 您可以通过更改以下内容来解决此问题:perl if elsif返回-编译错误,perl,if-statement,return,Perl,If Statement,Return,我有以下子例程产生此错误,但我不明白原因: C:…pl第44行,靠近“May”的main::formatdate没有足够的参数 由于编译错误,C:…pl的执行被中止 代码: 你应该读书 您可以通过更改以下内容来解决此问题: sub formatdate($month) { 对下列事项: sub formatdate { my $month = shift; 定义格式日期的另一种方法是 sub formatdate { my($month) = @_; 此外,您可能希望更新pri
sub formatdate($month) {
对下列事项:
sub formatdate {
my $month = shift;
定义
格式日期的另一种方法是
sub formatdate {
my($month) = @_;
此外,您可能希望更新print语句以包含换行符
print formatdate("May") . "\n";
阅读是修复子程序所需的建议
然而,我想进一步建议您,只要您有像您正在使用的键/值对,就要识别哈希的用法。在下面的代码中,我手动指定了散列,但也可以非常轻松地使用月份名称列表构建散列:
use strict;
use warnings;
sub formatdate {
my $month = shift;
my %monthcode = qw(
Jan .01.
Feb .02.
Mar .03.
Apr .04.
May .05.
Jun .06.
Jul .07.
Aug .08.
Sep .09.
Oct .10.
Nov .11.
Dec .12.
);
return $monthcode{$month} || 'N/A';
}
print formatdate("May");
产出:
.05.
好啊输入的Thx。
.05.