为什么这不在范围内?为什么要使用严格阻止呢?

用户名

语言是Perl。

#!/usr/bin/perl

use strict;
[...]
while ( my $res = $async->wait_for_next_response )
{
    [...]
    if ($res->is_success)
    {
        [...]
        my @relAuthorList = ($res->content =~ /<a +rel=\"author\" +href=\".*?\".*?>.*?<\/a>/gi);
        if (@relAuthorList)
        {
            if ($#relAuthorlList != 0) # Line 87
            {
                [...]
            }
            [...]
        }
        my @metaAuthorList = ($res->content =~ /<meta +name=\"author\" +content=\".*?\" *?>/gi);
        if (@metaAuthorList)
        {
            if ($#metaAuthorlList != 0) # Line 105
            {
                [...]
            }
            [...]
        }
        [...]
    }
    [...]
}

当我运行它时,出现以下错误:

$ ./findAuthorCanonical
Global symbol "@relAuthorlList" requires explicit package name at ./findAuthorCanonical line 87.
Global symbol "@metaAuthorlList" requires explicit package name at ./findAuthorCanonical line 105.
Execution of ./findAuthorCanonical aborted due to compilation errors.
$

我很困惑 严格开启。我正在使用my关键字来声明数组变量。我从=~操作员返回结果作为数组列表。我正在测试数组以确保它们中包含元素,然后再尝试使用$#arrayperldata中概述的来获取最后一个索引

当我严格关闭电源时,它会按预期运行。

在将任何内容放入它们之前,我尝试过将它们声明为数组:

my @relAuthorList = [];
my @metaAuthorList = [];

那也不起作用。

有关此问题的大多数答案都涉及范围界定错误,但我看不到我在这里所做的任何事情。有些涉及忘记使用声明变量,my但我已经做到了。我见过一个涉及类型不匹配的示例,试图将标量视为数组。我找不到与此相关的任何内容。

所以我问:我在这里做错了什么?

克里斯·查理

严格在这里工作。这两个数组的声明与第87和105行中的拼写方式不同。

另外,检查数组!= 0将允许使用空数组(== -1)。如果您要检查1个以上的元素,那么测试就是>=1我是否了解您的意图。可能是您的意思@relAuthorList != 0(表示项目数为1或更多)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Haskell'showInt'不在范围内:为什么不呢?

来自分类Dev

为什么这不在React形式的onSubmit函数范围内?

来自分类Dev

为什么“变量不在范围内”

来自分类Dev

为什么会收到“不在范围内”异常消息?

来自分类Dev

为什么if语句不在全局范围内寻找变量

来自分类Dev

为什么会收到“不在范围内”异常消息?

来自分类Dev

为什么项目不在视图范围内?

来自分类Dev

Dapper / EF-当变量不在使用范围内时,为什么性能会提高

来自分类Dev

为什么要使用指定的比较呢?

来自分类Dev

为什么要使用合成呢?

来自分类Dev

为什么二分搜索算法使用下限而不是上限-不在半开范围内

来自分类Dev

为什么通配符类型参数不在自引用类型的包装器范围内

来自分类Dev

您能告诉我为什么这些方法不在范围内吗?

来自分类Dev

为什么我的oracle日期字段不在查询范围内?

来自分类Dev

为什么 d3.scale Quantize 不在我的连续范围内生成离散值

来自分类Dev

为什么在Vue范围内的scss上不使用Display Flex属性,为什么?

来自分类Dev

为什么python对范围不严格?

来自分类Dev

为什么这不超载?

来自分类Dev

为什么在Swift的全局范围内重载==?

来自分类Dev

为什么unwrap_or()在范围内保留借位?

来自分类Dev

为什么VLookup无法在我定义的范围内工作?

来自分类Dev

范围反转时为什么要使用range_iterator?

来自分类Dev

为什么这不在UITableView中显示信息?

来自分类Dev

当使用::指定模块时,为什么Ruby在更高范围内找不到类?

来自分类Dev

为什么在全局范围内使用“ extern int a”似乎不可行?

来自分类Dev

为什么我不能在基于for的范围内使用此“ void”类型?

来自分类Dev

新(无)运算符的实际含义是什么,为什么要使用它呢?

来自分类Dev

为什么要使用“ getattr()”?

来自分类Dev

为什么要使用if(!! err)?

Related 相关文章

  1. 1

    Haskell'showInt'不在范围内:为什么不呢?

  2. 2

    为什么这不在React形式的onSubmit函数范围内?

  3. 3

    为什么“变量不在范围内”

  4. 4

    为什么会收到“不在范围内”异常消息?

  5. 5

    为什么if语句不在全局范围内寻找变量

  6. 6

    为什么会收到“不在范围内”异常消息?

  7. 7

    为什么项目不在视图范围内?

  8. 8

    Dapper / EF-当变量不在使用范围内时,为什么性能会提高

  9. 9

    为什么要使用指定的比较呢?

  10. 10

    为什么要使用合成呢?

  11. 11

    为什么二分搜索算法使用下限而不是上限-不在半开范围内

  12. 12

    为什么通配符类型参数不在自引用类型的包装器范围内

  13. 13

    您能告诉我为什么这些方法不在范围内吗?

  14. 14

    为什么我的oracle日期字段不在查询范围内?

  15. 15

    为什么 d3.scale Quantize 不在我的连续范围内生成离散值

  16. 16

    为什么在Vue范围内的scss上不使用Display Flex属性,为什么?

  17. 17

    为什么python对范围不严格?

  18. 18

    为什么这不超载?

  19. 19

    为什么在Swift的全局范围内重载==?

  20. 20

    为什么unwrap_or()在范围内保留借位?

  21. 21

    为什么VLookup无法在我定义的范围内工作?

  22. 22

    范围反转时为什么要使用range_iterator?

  23. 23

    为什么这不在UITableView中显示信息?

  24. 24

    当使用::指定模块时,为什么Ruby在更高范围内找不到类?

  25. 25

    为什么在全局范围内使用“ extern int a”似乎不可行?

  26. 26

    为什么我不能在基于for的范围内使用此“ void”类型?

  27. 27

    新(无)运算符的实际含义是什么,为什么要使用它呢?

  28. 28

    为什么要使用“ getattr()”?

  29. 29

    为什么要使用if(!! err)?

热门标签

归档