본문 바로가기
창고/Backup_2013_0121

Day3 - 02

by 가능성1g 2011. 7. 7.
반응형

# 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 }; 
 

반응형