2013년 9월 11일 수요일

Perl 제대로배우기 - 15장(Other Data Conversion)

15. Other Data Conversion
서브문자열 찾기
$x = index($string,$substring);
반환값 $x는 0 부터 시작 , 찾을 수 없으면 -1
join 함수는 배열을 분리자로 합쳐진 단일 문자열로 표현하기
$join_str = join(“ “,@array);


$x = index($bigstring,$littlestring,$skip);
$skip : 시작 index


rindex :: 오른쪽으로부터 탐색 한다. 반환값은 index와 동일하다.


서브문자열의 추출과 대체
$s = substr($string,$start,$length);


sprintf()로 테이터 포맷팅하기
$result = sprintf(“X%05d”,$y);


고급정렬
sub by_number{
 if($a < $b){
   return -1;
 } elsif($a == $b){
   return 0;
 } elsif($a > $b){
   return 1;
 }
}
이름이 중요하다 by_number..
사용예)
@by_numbers = sort by_number @sorted_arrays;
우주선 연산자 (spaceship) :: <=>
@by_spaceships = sort { $a<=>$b} @sorted_arrays;
여기서 반드시 변수는 $a 와 $b 이어야 한다!!
문자열 비교 연산자 :: cmp
@rst = sort { ($a<=>$b) || ($a cmp $b)} @sorted_arrays;
** 해시는 추후 정리 합니다.
변환
tr/ab/ba/cds;
c - complement 비문자
d - delete , 삭제 즉 대응문자가 없으면 제거함.
s - 하나로 압축 된다.
의미는 a는 b로 변환하고 b는 a로 변환한다. 현재 변수 $_;
반환값은 변환된 문자수

$name =~ tr/xxx/xxx/; 처럼 =~ 연산자를 사용할 수 있다.

댓글 1개:

익명 :

perl 제대로 배우기는 Learning Perl 4판 번역판입니다. 현재 거침없이 배우는 펄 이라는 제목으로 Learning Perl 5판이 번역되어 나와있습니다.