我有警告:
"my" variable $subject masks earlier declaration in same scope at ...
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过no warnings 'all'编译指示禁用警告,但找不到适合我的警告类型的类别。
如何仅禁用此类警告?
mob*_*mob 10
搜索perldoc perldiag您的警告消息。这个出现
"%s" 变量 &%s 掩盖了同一 %s 中的先前声明
(W shadow) 在当前作用域或语句中重新声明了“我的”、“我们的”或“状态”变量,有效地消除了对前一个实例的所有访问。这几乎总是一个印刷错误。请注意,较早的变量将一直存在,直到作用域结束或直到对它的所有闭包引用都被销毁。
它告诉您禁用此特定警告的编译指示是
no warnings 'shadow';
Run Code Online (Sandbox Code Playgroud)
如何仅禁用此类警告?
请不要这样做。修复导致错误的错误是一个更好的主意。
你已经声明$subject两次了。从第二个声明中删除my或更改第二个变量的名称。我对你的代码一无所知,所以我无法建议你哪种方法最好。