in reply to Re: What are (popular) modules that access/modify @ARGV?
in thread What are (popular) modules that access/modify @ARGV?
So, I took your suggestion and wrote the following subroutine. Much of it is just the process of comparing the module's path to the object being called to determine the module name. It works well if I put it in a script; however, when I put it in a module (such that it runs on import), running a script that calls the module essentially fork bombs my machine. Any suggestions on possible workarounds? When I get a chance tonight, I'll look at the B::Xref source and see if I can figure something out. Thanks.
sub check_conflicts { my @xref_out = `perl -MO=Xref,-r $0 2> /dev/null`; @xref_out = grep { /ARGV/ } @xref_out; my %conflicts; for (@xref_out) { my ($module_path, $object ) = split /\s/; $module_path =~ s|/|::|g; my @object_path = split /::/, $object; for (0 .. $#object_path) { my $module_name = join "::", @object_path[0..$_]; if ($module_path =~ /$module_name\.pm/) { $conflicts{$module_name} = 1; last; } }; } say $_ for keys %conflicts; }
In Section
Seekers of Perl Wisdom