我目前正在重构一些应用程序代码,我希望能够从子例程中删除一些参数。例如,假设我有以下内容[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/