in reply to What happens when you load the same module twice?
I presume this is a warning to prevent incompatible modules being used at the same time?
For example
one.pm
two.pm#!/usr/bin/perl -w use strict; package one; require Exporter; our @ISA = ("Exporter"); our @EXPORT = qw(foo); sub foo { print "how do you do\n"; }
trial.pl#!/usr/bin/perl -w use strict; package two; require Exporter; our @ISA = ("Exporter"); our @EXPORT = qw(foo); sub foo { print "Salut toi! Ca va?\n"; }
result of running trial.pl#!/usr/bin/perl -w use strict; use one; use two; foo();
Note, if you switch the use statements, main::foo points to one::foo instead of two::foo[~/] perl trial.pl Subroutine main::foo redefined at /usr/local/lib/perl5/5.8.2/Exporter. +pm line 60. at trial.pl line 4 Salut toi! Ca va?
modified trial.pl
result of running modified trial.pl#!/usr/bin/perl -w use strict; use two; use one; foo();
[~/] perl trial.pl Subroutine main::foo redefined at /usr/local/lib/perl5/5.8.2/Exporter. +pm line 60. at trial.pl line 4 how do you do
|
|---|