flo*_*ads 13 perl warnings subroutine
所以我有一个文件,简而言之就是这个问题......
#!/usr/bin/perl -w
package Foo;
use strict;
use POSIX;
...
sub remove {
...
}
...
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,说子程序remove已被重新定义.我知道这个问题,remove在POSIX中有一个子程序.但是,我不知道如何处理它.这个问题通常如何解决?
mob*_*mob 22
抑制此警告的另一种方法是将子例程重定义放在no warnings 'redefine'块中:
{
no warnings 'redefine';
sub remove { ... }
}
Run Code Online (Sandbox Code Playgroud)
enn*_*ler 20
做这个:
use POSIX ();
Run Code Online (Sandbox Code Playgroud)
这将停止导出POSIX模块的所有默认功能.然后,您需要使用POSIX ::前缀所有POSIX方法,例如:
POSIX::remove(filename)
Run Code Online (Sandbox Code Playgroud)
用于POSIX删除功能.
Eth*_*her 18
您可以使用'!name'指令排除某些符号(请参阅perldoc Exporter),例如:
#!/usr/bin/perl -w
package Foo;
use strict;
use POSIX '!remove';
...
sub remove {
...
}
...
Run Code Online (Sandbox Code Playgroud)