class X::Redeclaration does X::Comp { }

当一个符号(变量、例程、类型、参数,...)被重新声明时抛出。请注意,在内部作用域中重新声明通常没问题,但如果重新声明出现在与原始声明相同的范围内,则通常表示错误,并被视为错误。

示例

my $xmy $x;

使用以下内容死亡

===SORRY!===
Redeclaration of symbol $x

它也适用于例程

sub f() { }
sub f() { }

使用以下内容死亡

===SORRY!===
Redeclaration of routine f

但这些很好

my $x;
sub f() {
    my $x;          # not a redeclaration, 
                    # because it's in an inner scope 
    sub f() { };    # same 
}

方法§

方法符号§

返回重新声明的符号的名称。

方法内容§

返回重新声明的符号的类型。通常为“符号”,但也可以为“例程”、“类型”等。

方法后缀§

返回附加到错误消息末尾的字符串。它通常更详细地解释具体问题,或建议解决问题的方法。