Perl 菜鸟。
我无法理解从模块中的子例程返回数组值。
该脚本具有以下内容:
print "Enter your first and last name.\n";
chomp(my $fullname = <STDIN>); #input is 'testing this' all lower case
Jhusbands::Loginpass->check_name($fullname);
print "$fullname\n";
该模块包括以下子程序:
sub check_name {
my $class = shift;
if ($_[0] =~ /^\w+\s+\w+$/ ) {
@_ = split( / /, $_[0]);
foreach $_ (@_) {
$_ = ucfirst lc for @_;
@_ = join(" ", @_);
print Dumper(@_) . "\n";
return @_;
}
}
}
我正在取名字,只检查它的第一个和最后一个(我稍后会谈到 else 语句),拆分它,更正大小写,然后再次加入。Dumper 将最终数组显示为:
$VAR1 = 'Testing This';
所以它似乎工作得那么远。但是,脚本中的返回值$fullname
显示全部小写:
测试这个
为什么不将 Dumper 显示的更正后的大写变量作为最后一次数组迭代?