perl - 重构perl子程序的参数列表

标签 perl refactoring

我目前正在重构一些应用程序代码,我希望能够从子例程中删除一些参数。例如,假设我有以下内容[1]:

sub do_something {
    my ( $param1, $param2, $param3, $param4 ) = ( @_ );
    ....
}

但是,作为重构的一部分,我使参数 2 和 3 变得多余。更新这个方法签名是很容易的部分,但是有没有一种直接的方法来更新对它的所有调用?

我一直在做一些定制的 grep/sed/perl 来做到这一点,但是对 sub 的一些调用是通过多条线路进行的,这使得它很痛苦,而且每次我在一个项目上这样做都是定制的。是否有适合进行这种特定重构的工具?

[1] - 不是实际参数或子程序名称,我向你保证!

最佳答案

Padre有一些重构的功能,但我不知道它是否能完成你想要的。

更改您的界面以接受散列而不是位置列表,这将使 future 的更改比现在更少工作。

sub do_something {
    my (%param) = (@_);
    ...
}

do_something(foo => 23, bar => 42);

关于perl - 重构perl子程序的参数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17875061/

相关文章:

Python 为 "perl -pe",对 stdin 中的每一行执行 Python 命令

haskell - 自动管理导入或重构模块的脚本

javascript - 如何避免 JQuery 中的 if/else 循环

refactoring - 哪些敏捷实践与游戏开发兼容?

regex - 将多段文档拆分为段落编号的句子

c++ - 如何在 C++ 中实现与嵌套 Perl 散列等效的功能?

perl - Inline::CPP - 如何将指针 (int*) 作为 C 函数的参数处理

perl - perl Carp模块中的无限循环

javascript - 如何重构重复的条件 Vue.js 代码?

c - 尝试一起编译多个 CUDA 文件时出现链接错误 LNK2005