加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

什么是@l in perl?

发布时间:2020-12-15 21:53:27 所属栏目:大数据 来源:网络整理
导读:我遇到了这个,期待它是$@的拼写错误: use strict;use warnings;eval { my $error = Not::Here-new();};warn @$; 令我惊讶的是它输出了这个: Can’t locate object method “new” via package “Not::Here” (perhaps you forgot to load “Not::Here”?)
我遇到了这个,期待它是$@的拼写错误:
use strict;
use warnings;

eval {
  my $error = Not::Here->new();
};

warn @$;

令我惊讶的是它输出了这个:

Can’t locate object method “new” via package “Not::Here” (perhaps you forgot to load “Not::Here”?) at dollar_array.pl line 6.
…caught at dollar_array.pl line 9.

我无法找到有关@ $的任何信息,它未在perlvar上列出,也未在eval中列出

由于输出显示在…中,似乎这是perl的异常处理中的一些内容.

解决方法

@ $在Perl中没有任何意义.它的存在是因为$$存在(对于每个特殊变量“sigil-char”,所有其他“another_sigil-char”变量都存在).因此,warn没有任何参数 – 你可以通过使用just war来验证; – 你会得到相同的输出.

现在,让我们阅读warn的文档:

If the output is empty and $@ already contains a value (typically from a previous eval) that value is used after appending "t...caught" to $@. This is useful for staying almost,but not entirely similar to die.

$@包含eval中的异常,因此预期会出现这种情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读