Если вы хотите объединить аргументы, используйте оператор "."
или join
:
my $err = $soap_response->code. " ". $soap_response->string. "\n";
my $err = join '', $soap_response->code, " ", $soap_response->string, "\n";
Далее, почему Perl выдает вам предупреждения.
Вы присваиваете скалярной переменной $err
, и правая часть присваивания оценивается в скалярном контексте.
Двоичный ",
" - это оператор запятой. В скалярном контексте он оценивает свой левый аргумент в пустом контексте, отбрасывает это значение, затем оценивает свой правый аргумент в скалярном контексте и возвращает это значение.
Вычислять переменную или константу и отбрасывать это значение бесполезно. И perl предупреждает вас об этом.
FYI: еще одна возможная проблема с вашим кодом:
my $err = $soap_response->code, " ", $soap_response->string, "\n";
Присвоение имеет более высокий приоритет, поэтому:
(my $err = $soap_response->code), " ", $soap_response->string, "\n";
См. операторы Perl и их приоритет и Оператор запятой для получения дополнительной информации.
person
Community
schedule
26.02.2010