Perl - 返回变量时是否可以使用"uc"?

Tho*_*ing 1 perl

我想问一个简单的问题.我是Perl脚本的初学者,对不起,如果你觉得这个问题很愚蠢.

问题是我可以返回变量并在返回时应用"uc".

这是代码:

my $desc = "";

@names = ("thor-12345-4567");
$size  = @names;

Thor();
print $desc;
sub Thor() {
    if ($size ne "0") {
        return uc ($desc=$names[0]);
    }
    $desc = "NA";
    return $desc;
}
Run Code Online (Sandbox Code Playgroud)

我只是想知道当我们返回变量时可以使用"uc"吗?

当我尝试打印$ desc时,它没有返回大写.

非常感谢你!

Mil*_*ler 6

避免在函数中分配或依赖全局变量.而是传递参数和返回值.

use strict;
use warnings;

my $desc = Thor("thor-12345-4567");

print $desc;

sub Thor {
    my @names = @_;

    if (@names){
        return uc $names[0];
    } else {
        return "NA";
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 简短的回答是,它会鼓励您制作更好的代码,并且还可以帮助您更快地找到语法错​​误.所有专业人士都应该使用它.有关更详细的答案,我只是用Google搜索"stackoverflow为什么要使用严格使用警告",并将以下线程弹出到前面:[为什么要使用严格和警告?](http://stackoverflow.com/questions/8023959/why-use -strict-和警告) (3认同)