# Chapter 16 펄 오브젝트 사용하기
DBI 패키지 설명서
http://dbi.perl.org/
*. 가장 간단한 DBI 사용법
1#!/usr/bin/perl
2use warnings;
3use strict;
4
5use DBI;
6
7my $dbh = DBI->connect($data_source, $username, $password);
8$dbh->do("UPDATE friends SET phone = ’12345678’ WHERE name = ’Jack’");
9$dbh->disconnect();
#Chapter 17 레퍼런스와 복잡한 데이터 구조
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 #Chapter 17 Reference
6
7 my $scalar = "This is a scalar";
8 my @array = qw(a b c);
9 my %hash = (
10 sky => 'blue',
11 apple => 'red',
12 grass => 'green'
13 );
14
15 #각 변수타입별 레퍼런스 만들기
16 #\ 가 C의 &역할이라고 생각
17 my $scalar_ref = \$scalar;
18 my $array_ref = \@array;
19 my $hash_ref = \%hash;
20
21 print $hash_ref; #HASH(0x40068634)
22 print "\n";
23 print ref($hash_ref); #HASH == 타입을 뿌려줌
24 print "\n";
25
26 print $array_ref->[0];
27 print "\n";
28 print $hash_ref->{'sky'}; #레퍼런스를 이용한 참조 (-> 이용)
29 print "\n";
30 print $$scalar_ref; #레퍼런스를 이용한 참조 ( $ 이용 )
31 print "\n";
32 print $$array_ref[0];
33 print "\n";
34 print $$hash_ref{'sky'};
35 print "\n";
36
37 #레퍼런스 변수 재할당
38 my $new_scalar = $$scalar_ref;
39 my @new_array = @$array_ref;
40 my %new_hash = %$hash_ref;
41
42 #재할당후 영향도 테스트
43 $$scalar_ref = "This is Mine!!";
44
45 print $scalar; #This is Mine!!
46 print "\n";
47 print $$scalar_ref; #This is Mine!!
48 print "\n";
49 print $new_scalar; #This is a scalar 새로운 변수로 영향없음
50 print "\n";
51
52
53 __END__
54
55 Typed By HanTJ
56 Http://taisou.tistory.com
*. Call By Reference 를 이용한 서브루틴 생성
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 #Chapter 17 Reference and SubRutine
6
7 my @array1 = qw(a b c);
8 my @array2 = qw(d e f);
9
10 two_lists(@array1, @array2);
11 two_lists2( \@array1, \@array2);
12
13 sub two_lists
14 {
15 # 연결된 인수일경우 arg1 으로 모두 할당이 되어버림
16 # 그래서 arg2 에는 값이 안들어가있다
17 my(@arg1, @arg2) = @_;
18
19 print $arg1[0]; # a
20 print "\n";
21 print $arg2[0]; # Uninitialize
22 print "\n";
23 print $arg1[3]; # d
24 print "\n";
25 }
26
27 sub two_lists2
28 {
29 #서브루틴으로 레퍼런스를 넘겨주고 받음
30 #해당 레퍼런스를 이용해서 값참조
31 my($arg1_ref, $arg2_ref) = @_;
32
33 print "arg1 list: \n";
34 foreach( @$arg1_ref )
35 {
36 print "$_\n";
37 }
38
39 print "arg2 list: \n";
40 foreach( @$arg2_ref )
41 {
42 print "$_\n";
43 }
44 }
45
46
47 __END__
48
49 Typed By HanTJ
50 Http://taisou.tistory.com
*Module Data::Dumper
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
#Data::Dumper 복잡한 자료구조의
#변수에 할당된 값을 보여주는 모듈
my %HoH = (
Jacinta => {
age => 26,
favourite_colour => "blue",
sport => "swimming",
language => "Perl",
},
Paul => {
age => 27,
favourite_colour => "green",
sport => "cycling",
language => "Perl",
}
);
print Dumper \%HoH;
print Dumper %HoH;
__END__
## print Dumper \%HoH;
$VAR1 = {
'Paul' => {
'language' => 'Perl',
'sport' => 'cycling',
'favourite_colour' => 'green',
'age' => 27
},
'Jacinta' => {
'language' => 'Perl',
'sport' => 'swimming',
'favourite_colour' => 'blue',
'age' => 26
}
};
## print Dumper %HoH;
$VAR1 = 'Paul';
$VAR2 = {
'language' => 'Perl',
'sport' => 'cycling',
'favourite_colour' => 'green',
'age' => 27
};
$VAR3 = 'Jacinta';
$VAR4 = {
'language' => 'Perl',
'sport' => 'swimming',
'favourite_colour' => 'blue',
'age' => 26
};
창고/Backup_2013_0121
Day3 - 02
반응형
반응형