package absolutify; use Filter::Simple; { my $USE_REGEX = qr{ ^ \s* ( use \s+ (\S+) \s+ ) qw[(] ([^\)]*) [)] ; }xms; my %Filter_Replace; FILTER { while ( s/ $USE_REGEX /$1();/xms ) { my ( $use_line, $package, $import ) = ( $1, $2, $3 ); my @imports = split /\s+/, $import; for my $import (@imports) { if ( $import =~ / \A ([&\$%@])? (\w+) \z /xms ) { $Filter_Replace{$import} = "$1$package\::$2"; } } } s/ ( [&\$%@]? \w+ ) / $Filter_Replace{$1} || $1 /xmsge; }; } 1;