Как добавить n цифр в строку с помощью Perl - PullRequest
0 голосов
/ 09 января 2019

Мне нужно добавить определенное количество нулей в строку, чтобы скалярный $ newstg ниже был равен «1000».

use strict;
my $number_of_zeros = 3;

my $newstg = '1';
$newstg = $newstg . sprintf("%0$number_of_zerosd\n",$subd); 
print "Subd: $newstg\n";

Ответы [ 4 ]

0 голосов
/ 10 января 2019
$newstg * ( 10 ** $number_of_zeroes )

или

$newstg . ( '0' x $number_of_zeroes )
0 голосов
/ 09 января 2019

Вы можете использовать x оператор повторения .

my $number_of_zeros = 3;
print '1' . 0 x $number_of_zeros;
0 голосов
/ 09 января 2019

Использование может использовать нотацию *, поддерживаемую sprintf / printf, для использования переменных в вашем шаблоне.

$newstg .= sprintf("%0*d\n", $number_of_zeros, $subd);
#same as   sprintf("%03d\n", $subd);
0 голосов
/ 09 января 2019

Будет нормально работать, если вы измените эту строку:

$newstg = $newstg . sprintf("%0$number_of_zerosd\n",$subd); 

до

$newstg = $newstg . sprintf("%0${number_of_zeros}d\n",$subd); 
#                             __^             __^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...