@_什么含义

"dino", @names 这个参数后面有 @_ 这是一个内置变量

其实@_就是默认数组。
它会根据语言环境自动获取某些变量或数组,这样的好处是语言的灵活性很大,同时也会让初学者很容易迷惑。你多动手试试,多用用就好了。这个是常用的特殊变量。要熟练掌握的。

词法变量(my)可使用在任何语句块内,而不仅限于子程序的语句块。

@_什么含义_第1张图片
TIM截图20190726201642.png

因为@_的存在,使得$what, @array自动查找符合条件的变量。
设置为私有变量就是为了在一定的作用域,根据使用的位置来决定。。。具体待学。。。。

my @names = qw/ fred barney betty dino wilma pebbles bamm-bamm /;
my $result = &which_element_is("dino", @names);

sub which_element_is {
    my($what, @array) = @_;
    foreach (0..$#array) {
        if ($what eq $array[$_]) {
            return $_;
        }
    }
    -1;
}
print &which_element_is();

你可能感兴趣的:(@_什么含义)