So I have a file that in short has this problem...
#!/usr/bin/perl -w
package Foo;
use strict;
use POSIX;
...
sub remove {
...
}
...
and I get a get an error saying the subroutine remove
has been redefined. I know the problem, there is a subroutine called remove
in POSIX. However, I don't know how to handle it. How is this problem typically solved?
The other way to suppress this warning is to put your subroutine redefinition inside a no warnings 'redefine'
block:
{
no warnings 'redefine';
sub remove { ... }
}
do this:
use POSIX ();
which will stop the export all default functionality of the POSIX module. You will then need to prefix all POSIX methods with POSIX:: such as:
POSIX::remove(filename)
for the POSIX remove function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With