- 1
- 2
- 3
- 4
sub append {
my $appendstring = @_[0];
$returnstring = "$returnstring$appendstring";
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−113.6
sub append {
my $appendstring = @_[0];
$returnstring = "$returnstring$appendstring";
}
Из плагина к nagios'у, который проверяет состояние интерфейсов на cisco-девайсах. http://svn.opsview.org/opsview/trunk/opsview-core/nagios-plugins/check_snmp_cisco_ifstatus .
Хотя может тут какая-то особенная запутанная логика. Без примера вызова функции append и использования результата этого вызова сказать трудно.
sub append
{
$returnstring . shift;
}
В общем а). не гк b). как уже сказано TIMTOWTDI
$returnstring = "";
[skipped]
$temp = sprintf "$ifdescr ($iftype_string) - Current: $ifoutbitssec, Limit: $ifspeed, MTU: $ifmtu и т.д.";
append($temp);
[skipped]
sub append {
my $appendstring = @_[0];
$returnstring = "$returnstring$appendstring";
}
непонятно зачем было делать специальную функцию, которая добавляет к заведомо известной глобальной переменной строку из параметра этой функции, когда всё вышеописанное можно сделать одной строчкой в месте где вызывается эта функция
$returnstring = "";
[skipped]
$returnstring .= "$ifdescr ($iftype_string) - Current: и т.д.";
а так в принципе про любой гк на перле можно сказать - это тоже TIMTOWTDI
@_ это список параметров, переданных подпрограмме
Если есть любой массив @a, то обращение к его элементу по индексу происходит: $a[0]
Так и здесь будет $_[0] - потому что это скаляр в итоге.
$_[0] - это скаляр, 0-й элемент массива @_
@_[0] - это список, срез массива @_