티스토리 뷰

DEV/Perl

Reference

초록매실원액 2015. 12. 4. 09:15

메모리의 지점 주소값을 가지는 변수

변수의 주소 확인

  • 변수의 이름 앞에 '\'문자를 붙여 기술
    • \$a  :  변수 $a 주소값
    • \@b : 배열 @b 주소값

Reference 가르키는 변수 참조

  • 변수의 이름 앞에 '$'문자를 붙여 기술
  • $$a = 변수 $a 들어있는 주소값을 참조한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
학생의 성적을 입력 받아 출력 하는
 
%stu;
 
 
 
$st = \%stu;
 
 
 
print
"name  :";
 
chomp($st->{name}=<>);
 
print
"kor   :";
 
chomp($st->{kor}=<>);
 
print
"eng   :";
 
chomp($st->{eng}=<>);
 
print
"math  :";
 
chomp($st->{math}=<>);
 
 
 
$sum =
$st->{kor}  + $st->{eng} +
$st->{math};
 
$avg =
$sum/3.0;
 
 
 
print
"--- result ----\n";
 
print
"name  :
"."$st->{name}\n";
 
print
"kor   :
"."$st->{kor}\n";
 
print
"eng   :
"."$st->{eng}\n";
 
print
"math  :
"."$st->{math}\n";
 
print
"sum   : "."$sum\n";
 
print
"avg   : "."$avg\n";
 
 

cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
 
 
-------------------------------------------------------------------------
 
$a = 10;
 
$b = /$a;
 
 
 
print
${$b};
 
{}를 통해 참조하고 있는 변수의 값을 가져올수있다 = 디레퍼넌스 
 
-------------------------------------------------------------------------
 
@a =
(10,20);
 
$b = \@a;
 
print
$b->[0];
 
배열에 접근할떄 이렇게 축약가능
 
-------------------------------------------------------------------------
 
%hash =
 
(
 
1 => "one",
 
2 => "투",
 
3 => "삼",
 
);
 
$a = \%hash;
 
 
 
print $a
->{1};
 
-------------------------------------------------------------------------
 
 
cs

split

1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
$a  = "apple";
 
@arr =
split '',$a;
 
 
 
==tokenzier
cs





Reverse 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
chomp($a =
<>);
 
#$a =
"Reverse";
 
@arr = split
'',$a;
 
 
 
$tmp ;
 
for($j=0;
$j<= $#arr ;$j++){        
 
$tmp = $arr[$0];
 
for($i=0$i<= $#arr
;$i++){        
 
print $arr[$i];
 
$arr[$i=
$arr[$i+1];                                
 
}
 
$arr[-1= $tmp;
 
print "\n";
 
}

cs


#Perl Style
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for($i=0;$i<=$#arr;$i++){
 
//마지막 요소를 맨앞으로
 
#     print "@arr\n" ;
#     $tmp = pop @arr;
#     unshift @arr , $tmp;
 
//맨 앞요소를 맨뒤로
#        print "@arr\n" ;
#        $tmp= shift @arr;
#        push @arr , $tmp;
 
}
cs

foreach 

1
2
3
4
5
6
7
8
9
foreach 리스트or배열 <-- 요소의 개수만큼 반복
 
ex) foreach $x(0..2<----- 3번 반복, $x에는 0..2의 값이 들어감
 
 
 
foreach $x(0..2) 변수를 안적었을때
 
$_ 가 추가됨
cs





Typeglob

  • Perl에서는 변수나 배열, 연상배열 같은 이름을 붙일 있다.
  • 같은 이름의 변수나 배열 등을 하나로 묶어서 다루는

  • 이름 앞에 * 붙이면 typeglob 된다.





무명배열

  • [ ]안에 요소를 나열해 적은
  • 이름이 없는 배열을 뜻하며 이름 대신 레퍼런스를 사용한다

$A무명배열의 주소--->

200

300

400

500

$$A[0]

$$A[1]

$$A[2]

$$A[3]

무명해시

  • { } 안에 키와 값을 나열
  • 이름이 없는 연상배열을 뜻하며 값을 참조하기 위해 레퍼런스를 사용

$B 무명해시의 주소 ---->

1

2

3

$$B{"one"}

$$B{"two"}

$$B{"three"}

 

2차원 배열

  • 펄은 단순히 1차원 배열만 제공
  • 2차원 배열을 구현하기 위해서는 레퍼런스를 이용


배열의 해시

  • 리스트 해시값을 사용하여 해시를 만든다.

 


해시의 해시





'DEV > Perl' 카테고리의 다른 글

Subroutine (=함수)  (0) 2015.12.11
제어문  (0) 2015.12.11
배열  (0) 2015.12.02
연산자 및 입력과 츌력  (0) 2015.12.02
Perl  (0) 2015.12.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함