Sure, you can use a copy, to be declared outside of the BEGIN block:
use strict;
use warnings;
use FindBin 1.51 qw( $RealBin );
my $untainted_bin;
BEGIN { ($untainted_bin) = $RealBin =~ /(.+)/; }
use lib "$untainted_bin/../lib";
use MyLib;
Thanks. This is beautiful.
I improved it a little. Probably more portable with File::Spec.
use FindBin 1.51 qw( $RealBin );
use File::Spec;
my $lib_path;
BEGIN {
$lib_path = File::Spec->catdir(($RealBin =~ /(.+)/msx)[0], q{..},
+'lib');
}
use lib "$lib_path";