【问题标题】:Migrate a perl module迁移 perl 模块
【发布时间】:2013-07-30 20:58:46
【问题描述】:

假设我有一个 perl 模块 Foo::Bar,由 module-starter 启动,并且在命名空间 Foo::Bar 下已经有几个包,现在我得出结论,这是一个错误的名称选择,我想调用它是 MyBetterName::Bar。

是否有任何工具可以帮助自动化此过程,而无需替换所有模块、pod、测试和示例。我知道,我可以编写一个 perl 脚本来做到这一点,但假设这是我第一次编写 perl 模块并且不太清楚应该包含哪些文件。

我尝试了谷歌,但没有发现任何对我有用的东西

【问题讨论】:

标签: perl module perl-module


【解决方案1】:

应该足以全局替换 Foo::Bar 和 Foo/Bar

find -type f -exec perl -i -pe's{Foo(::|-|/)Bar}{MyBetterName${1}Bar}g;' {} +

然后自己重​​命名文件

find -depth -execdir rename 's/Foo/MyBetterName/g' {} \;

【讨论】:

  • 是的,只需稍作改动(包括 hiffen)即可使用 find -type f -exec perl -i -pe's{Foo(::|/|-)Bar}{MyBetterName${1}Bar }G;' {} + 并添加这个 find 。 -depth -name "*" -execdir rename 's/Foo/MyBetterName/g' "{}" \;感谢@ikegami 为我指出了这个单一的解决方案
  • 啊,是的,我说“/”时实际上是在想“-”,虽然“/”也可以包含在内
猜你喜欢
  • 1970-01-01
  • 2021-08-14
  • 2014-05-02
  • 1970-01-01
  • 2015-12-07
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 2021-07-03
相关资源
最近更新 更多