Perl/Perlfaq4-08 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: Perl/Perlfaq4-08 는 읽기 전용 페이지입니다.
== # 연속된 정수들에 어떤 연산을 수행하려면 (How do I perform an operation on a series of integers?) == 배열의 각 원소에 대하여 함수를 호출하고 결과를 모으는 경우 다음처럼 사용하라: {{{#!vim perl @results = map { my_func($_) } @array; }}} * 예: {{{#!vim perl @triple = map { 3 * $_ } @single; }}} 각 원소에 대하여 함수를 호출하되 결과는 무시하는 경우: {{{#!vim perl foreach $iterator (@array) { some_func($iterator); } }}} 어떤 (작은) 범위의 정수들 각각에 대하여 함수를 호출하는 경우 다음과 같이 할 수 있다: {{{#!vim perl @results = map { some_func($_) } (5 .. 25); }}} 그러나 ".." 연산자는 그 범위에 해당하는 모든 정수를 원소로 하는 배열을 생성한다는 것에 유의하라. 범위가 클 경우 메모리를 많이 차지하게 된다. 대신에 다음과 같이 하라: {{{#!vim perl @results = (); for ( $i = 5; $i < 500_005; $i++ ) { push(@results, some_func($i)); } }}} 이런 상황은 Perl 5.005에서 수정되었다. "for" 루프 안에서 ".." 연산자를 사용할 경우는 전체 범위의 배열을 생성하지 않고 반복하게 된다. {{{#!vim perl for my $i (5 .. 500_005) { push(@results, some_func($i)); } }}} 위 코드는 500,000개의 정수의 리스트를 만들지 않는다.
----
---- [[컴퓨터분류]] [[Perl]] [[/Perlfaq]]
Perl/Perlfaq4-08
페이지로 돌아가기 |
다른 수정본 보기