sub import { return if $ENV{FIXINIT_PM}; my $class = shift; my @chk = $^C ? '-c' : (); $ENV{FIXINIT_PM} = 1; my @path = split /:/, $ENV{LD_LIBRARY_PATH}; while ( my $dir = shift @_ ) { last if $dir eq "--"; if ( $dir =~ s/^-// ) { if ($dir eq 'all') { @path = (); next; } @path = grep $_ ne $dir, @path; next; } if ( $dir =~ s/^\+// ) { unshift @path, $dir; next; } push @path, $dir; } $ENV{LD_LIBRARY_PATH} = join ":", @path; my %env = @_; $ENV{keys %env} = values %env; exec $^X => @chk, $0, @ARGV; die "Could not exec $^X $0: $!"; }