perl 코드에서 보면, Array를 파라미터로 넘겨서 처리하는 좋은 예제가 있다.
좋은 참조 자료를 바탕으로 재구성하였다.
출처 : http://www.webbasedprogramming.com/Perl-5-By-Example/ch5.htm#ExampleUsingtheParameterArray
#1
firstSub(1, 2, 3, 4, 5, 6); firstSub(1..3); firstSub("A".."Z"); sub firstSub { $numParameters = @_; print("The number of parameters is $numParameters\n"); }This program prints out: The number of parameters is 6 The number of parameters is 3 The number of parameters is 26 |
#2
areaOfRectangle(2, 3); areaOfRectangle(5, 6); sub areaOfRectangle { ($height, $width) = @_; $area = $height * $width; print("The height is $height. The width is $width. The area is $area.\n\n"); }This program prints out: The height is 2. The width is 3. The area is 6. The height is 5. The width is 6. The area is 30. |
#3
@array = (0..5); print("Before function call, array = @array\n"); firstSub(@array); print("After function call, array = @array\n"); sub firstSub{ $_[0] = "A"; $_[1] = "B"; } This program prints: |
#4
This program prints: |
#5
@array = (0..5); This program prints: |
#6
$firstVar = 10; This program prints: |
#6
firstSub("AAAAA", "BBBBB"); This program prints: |
#7
firstSub((0..10), "AAAA"); sub firstSub{ local(@array, $firstVar) = @_; print("firstSub: array = @array\n"); print("firstSub: firstVar = $firstVar\n"); } This program prints: |
#8
firstSub("AAAA", (0..10)); sub firstSub{ local($firstVar, @array) = @_; print("firstSub: array = @array\n"); print("firstSub: firstVar = $firstVar\n"); }This program prints: firstSub: array = 0 1 2 3 4 5 6 7 8 9 10 firstSub: firstVar = AAAA |
#9 Array 관련 함수
Function | Description |
---|---|
defined(VARIABLE) | returns true if VARIABLE has a real value and false if the variable has not yet been assigned a value. This is not limited to arrays, any data type can be checked. Also see the exists function for information about associative array keys. |
delete(KEY) | Removes the key-value pair from the given associative array. If you delete a value from the %ENV array the environment of the current process is changed, not that of the parent. |
each(ASSOC_ARRAY) | Returns a two-element list that contains a key and value pair from the given associative array. The function is mainly used so that you can iterate over the associate array elements. A null list is returned when the last element has been read. |
exists(KEY) | Returns true if the KEY is part of the specified associative array. For instance, exists($array{"Orange"}) returns true if the %array associative array has a key with the value of "Orange." |
join(STRING, ARRAY) | Returns a string that consists of all of the elements of ARRAY joined together by STRING. For instance, join(">>", ("AA", "BB", "CC")) returns "AA>>BB>>CC". |
keys(ASSOC_ARRAY) | Returns a list that holds all of the keys in a given associative array. The list is not in any particular order. |
map(EXPRESSION, ARRAY) | Evaluates EXPRESSION for every element of ARRAY. The special variable $_ is assigned each element of ARRAY immediately before EXPRESSION is evaluated. |
pack(STRING, ARRAY) | Creates a binary structure, using STRING as a guide, of the elements of ARRAY. You can look in Chapter 8, "References," for more information. |
pop(ARRAY) | Returns the last value of an array. It also reduces the size of the array by one. |
push(ARRAY1, ARRAY2) | Appends the contents of ARRAY2 to ARRAY1. This increases the size of ARRAY1 as needed. |
reverse(ARRAY) | Reverses the elements of a given array when used in an array context. When used in a scalar context, the array is converted to a string, and the string is reversed. |
scalar(ARRAY) | Evaluates the array in a scalar context and returns the number of elements in the array. |
shift(ARRAY) | Returns the first value of an array. It also reduces the size of the array by one. |
sort(ARRAY) | Returns a list containing the elements of ARRAY in sorted order. See Chapter 8, "References," for more information. |
splice(ARRAY1, OFFSET, LENGTH, ARRAY2) | Replaces elements of ARRAY1 with elements in ARRAY2. It returns a list holding any elements that were removed. Remember that the $[ variable may change the base array subscript when determining the OFFSET value. |
split(PATTERN, STRING, LIMIT) | Breaks up a string based on some delimiter. In an array context, it returns a list of the things that were found. In a scalar context, it returns the number of things found. |
undef(VARIABLE) | Slways returns the undefined value. In addition, it undefines VARIABLE which must be a scalar, an entire array or a subroutine name. |
unpack(STRING, ARRAY) | Does the opposite of pack(). |
unshift(ARRAY1, ARRAY2) | Adds the elements of ARRAY2 to the front of ARRAY1. Note that the added elements retain their original order. The size of the new ARRAY1 is returned. |
values(ASSOC_ARRAY) | Returns a list that holds all of the values in a given associative array. The list is not in any particular order. |
#10 출력하기
%array = ( "100", "Green", "200", "Orange"); while (($key, $value) = each(%array)) { print("$key = $value\n"); }This program prints: 100 = Green 200 = Orange |
#11
createPair("100", "Kathy Jones"); createPair("200", "Grace Kelly"); createPair("100", "George Orwell"); while (($key, $value) = each %array) { print("$key, $value\n"); }; sub createPair{ my($key, $value) = @_; $array{$key} = $value; };This program prints 100, George Orwell 200, Grace Kelly |
#12
createPair("100", "Kathy Jones"); createPair("200", "Grace Kelly"); createPair("100", "George Orwell"); while (($key, $value) = each %array) { print("$key, $value\n"); }; sub createPair{ my($key, $value) = @_; while (defined($array{$key})) { $key++; } $array{$key} = $value; };This program prints: 100, Kathy Jones 101, George Orwell 200, Grace Kelly |
'perl' 카테고리의 다른 글
Array 쪽 팁 (0) | 2008.06.07 |
---|---|
Array 다루기 #2 (0) | 2008.06.05 |
Passing Parameters to Functions (0) | 2008.06.05 |
Perl의 String 관련 함수 (0) | 2008.03.22 |
bash는 float 변수 연산이 안된다. (0) | 2007.10.21 |