ディレクトリ階層のリストを取得し、それらを 1 つのディレクトリにフラット化したいと考えています。リストの後半にある重複ファイルは、前のファイルを置き換えます。例えば...
foo/This/That.pm
bar/This/That.pm
bar/Some/Module.pm
wiff/This/That.pm
wiff/A/Thing/Here.pm
これはで終わるだろう
This/That.pm # from wiff/
Some/Module.pm # from bar/
A/Thing/Here.pm # from wiff/
これを行うには、おそらく複雑すぎるPerlプログラムがあります。SOユーザーがそれを解決する賢い方法に興味があります。大きなハードルは、おそらく basename と dirname の組み合わせを使用して、「必要に応じて中間ディレクトリを作成する」ことです。
私が解決しようとしている本当の問題は、インストールされている 2 つの Perl ライブラリの違いをチェックすることです。まず、各 Perl の複数のライブラリ ディレクトリを 1 つのディレクトリにフラット化し、Perl がモジュールを検索する方法をシミュレートします。私はそれらをすることができdiff -r
ます。