@_什么含义

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

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

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

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();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。