Как говорит Фридо, похоже, у вас более старая версия Perl. Тем не менее, отладка с помощью print
довольно проста, и о ней следует знать хорошую технику "низких технологий". Если у вас есть строка, такая как:
printf "%-10s %-10s %s %s", $var1, $var2, @array;
И вы получаете предупреждение, которое трудно поместить в любую переменную, вы всегда можете разделить его:
printf "%-10s ", $var1;
printf "%-10s ", $var2;
printf "%s %s", @array;
Тогда вы получите более конкретное предупреждение.
Или вы можете проявить немного творчества и сделать:
sub no_undef {
my @return;
push @return, map { defined $_ || "undef" } @_;
return @return;
}
printf "%-10s %-10s %s %s", no_undef($var1, $var2, @array);