У меня есть случайное число от 0,001 до 1000, и мне нужен perl для печати с фиксированной шириной столбца 5 символов. То есть, если он слишком длинный, он должен быть округлен, и если он слишком короткий, он должен быть дополнен пробелами.Исправлено число строк в столбце
Все, что я нашел в Интернете, предлагая использовать sprintf, но sprintf игнорирует ширину поля, если число слишком велико.
Есть ли способ получить perl для этого?
Что не работает:
my $number = 0.001 + rand(1000);
my $formattednumber = sprintf("%5f", $number);
print <<EOF;
$formattednumber
EOF
Вы должны убедиться, что ваш пример скомпилирован. Не печатайте код в редакторе переполнения стека. Скопируйте и вставьте код _actual real_. – simbabque
@simbabque исправил это, не скопировал пасту, потому что другой материал в коде просто отвлек бы внимание от проблемы – fifaltra
Проблема заключалась в отсутствии котировок. Просто использование 'printf' вместо нескольких строк сделало бы лучше [mcve]. :) – simbabque