Сегодня я натолкнулся на функцию, которая заставила меня остановиться и подумать. Я не могу придумать вескую причину сделать это:
sub replace_string {
my $string = shift;
my $regex = shift;
my $replace = shift;
$string =~ s/$regex/$replace/gi;
return $string;
}
Единственное возможное значение, которое я вижу в этом, - это то, что он дает вам возможность контролировать параметры по умолчанию, используемые с подстановкой, но я не считаю это полезным. Моя первая реакция при вызове этой функции - «что это делает?». Как только я узнаю, что он делает, я собираюсь предположить, что он делает это с этого момента. Что означает, что если он изменится, он сломает любой мой код, который нуждается в этом для этого. Это означает, что функция, вероятно, никогда не изменится, или изменение ее приведет к поломке большого количества кода.
Прямо сейчас я хочу отследить оригинального программиста и дать ему понять. Это действительное желание, или я упускаю какое-то значение, которое эта функция вносит в таблицу?