Perl에서 (001, 002, ... 100)
의 목록을 얻는 쉬운 방법이 있습니까 (sprintf
없이, 물론 printf
)? bash에서 그것은 seq -w 1 100
과 같았습니다. Perl은 어떻습니까?0으로 시작하는 숫자의 Perl 시퀀스
답변
이 뜻입니까? 범위
for ('001'..'100') {
print "$_\n";
}
..
는 오른쪽 값의 왼쪽 값에서, 사람에 의해 계산 값의 목록을 반환합니다.
범위를 사용하는 방법에 대한 자세한 내용을 참조하십시오 : Perldoc range operator 및 PRINTF이 같은 문제에 대해 생성 된
this link. 그것을 사용하면 원하는 답을 빨리 얻을 수 있습니다.
foreach my $number (1 .. 100) {
printf "%03d\n", $number;
}
%
는 "포맷 시퀀스를 시작"인 0
하다 "앞에 0" 3
는 "(정수) 자리수 파라미터 치료"
d
는 "세 자리 최소"인
OP가 'sprintf'를 요청하지 않았습니다.아마도 그것은'printf'에도 적용될 것입니다. – tjd
예,하지만 OP 상태 _without sprintf_ –
"sprintf"라는 이유가 Perl 자습서와 관련이 있다고 생각합니다. 기본적으로, 그들은 "sprintf"로 서식을 가르치고, 어떻게 든 "printf"를 가지고있는 큰 방법으로 광고를 피합니다. "sprintf"를 보았 으면 나중에 "인쇄"할 수 있었고, 그것은 어색해하고, 우아하고, 뭔가있을 것입니다. 피하십시오. –
대부분의 실제적인 목적을 위해''001 '..'100 ''은 그 목록을 아주 멋지게 만들어야합니다. – tjd
좋아요! 그걸 몰랐어. –
@evb : 왜 * sprintf를 사용하고 싶지 않은지 설명해주십시오. – Borodin