2017-09-29 104 views
1

是否有一些簡單的方法(沒有sprintf,當然,還有printf)在Perl中獲得(001, 002, ... 100)的列表? 在bash中,它類似於seq -w 1 100。 Perl怎麼樣?Perl前導零的數字序列

+2

對於大多數實際目的,'001'..'100'應該很好地創建該列表。 – tjd

+0

太棒了!不知道。 –

+0

@evb:請解釋*爲什麼*你不想使用'sprintf'? – Borodin

回答

7

您的意思是?

for ('001'..'100') { 
    print "$_\n"; 
} 

範圍..,返回由那些計數的值的列表中,從左邊的值成正確的值。

有關如何使用範圍的詳細信息,請參閱: Perldoc range operatorthis link

+0

您可能想要解釋'..'運算符。 – simbabque

+0

我把參考文件 – matiit

+0

是的,就是這樣!感謝您的鏈接! –

3

printf的是像這樣的問題產生。使用它可以幫助你更快地得到你想要的答案。

foreach my $number (1 .. 100) { 
    printf "%03d\n", $number; 
} 

%是「開始的格式序列」 的0是「前導零」 的3是「三位數字的最小」 的d是「治療參數作爲數字(整數)」

+0

OP沒有請求'sprintf'。推測這也適用於'printf'。 – tjd

+0

是的,但OP狀態_without sprintf_ –

+0

我認爲沒有「sprintf」與Perl教程有很多關係。基本上,他們用「sprintf」來教授格式化,並以某種方式避免廣告中出現大量的「printf」。如果我看到「sprintf」只是爲了能夠在之後「印刷」,它看起來笨重,不雅,避免。 –