Day2 리스트
• 인수에 이름붙여 넘기기 ( 해쉬를 이용한 인수 처리 )
• 정규 표현식
-. 보통 인수는 연속된 배열로 처리 되지만 인수에 이름을 붙이면,
인수의 개수는 순서에 상관없이 처리 가능
1interests(name => "Paul", language => "Perl", favourite_show => "Buffy");
2sub interests {
3my (%args) = @_;
4my $name = $args{name} || "Bob the Builder";
5my $language = $args{language} || "none that we know";
6my $favourite_show = $args{favourite_show} || "the ABC News";
7return "${name}’s primary language is $language. " .
8"$name spends their free time watching $favourite_show\n";
9}
-. 인수에 이름붙여 넘길때 기본값 설정 가능
1#!/usr/bin/perl
2use warnings;
3use strict;
4
5my %defaults = ( pager => "/usr/bin/less", editor => "/usr/bin/vim" );
6
7set_editing_tools(pager => "/usr/bin/more");
8
9sub set_editing_tools
10{
11 my (%args) = @_;
12
13 %args = ( %defaults, %args );
14
15 print "The new Text Pager is : $args{pager}\n";
16 print "The new Text editor is : $args{editor}\n";
17
18}
*. 정규식
/LETTER/ # 완벽하게 동일한 문자 찾음
m/PATTERN/ #패턴 매칭
m/PATTERN/i #대소문자 안가림
s/PATTERN/REPLACEMENT/ #매칭변경
s/PATTERN/REPLACEMENT/g #전체적으로 바꿈 g:global
s/PATTERN/REPLACEMENT/ig # 전체적으로 대소문자 안가리고 바꿈
-. 패턴 매칭 및 정규식은 $_ 에 기본적으로 동작함
-. 패턴 매칭 체크
1print "Please enter your homepage URL: ";
2my $url = <STDIN>;
3if($url !~ /^http:/) {
4print "Doesn’t look like a http URL.\n";
5}
6if ($url =~ /geocities/) {
7print "Ahhh, I see you have a geocities homepage!\n";
8}
9my $string = "The act sat on the mta";
10$string =~ s/act/cat/;
11$string =~ s/mta/mat/;
12print $string; # prints: "The cat sat on the mat";
-. 정규식에 쓰이는 메타 글자
메타 글자
매칭값
^
문자열의 시작 부분
$
문자열의 끝 부분
.
한글자 ( \n 제외 )
\n
줄바꿈
\t
텝
\s
빈칸( 스페이스, 텝, 줄바꿈 )
\S
빈칸이외 문자
\d
숫자( 0 ~ 9 )
\D
숫제 제외 문자
\w
word 케릭터 ( 알파벳, 숫자 + _(언더라인) )
\W
word 케릭터 제외 문자
\b
word break
\B
word break 제외 문자
-.예제
# Perl regular expressions are often found within slashes
/cat/ # matches the three characters
# c, a, and t in that order.
/^cat/ # matches c, a, t at start of line
/\scat\s/ # matches c, a, t with spaces on
# either side
/\bcat\b/ # Same as above, but won’t
# include the spaces in the text
# it matches. Also matches if
# cat is at the very start or
# very end of a string.
# we can interpolate variables just like in strings:
my $animal = "dog" # we set up a scalar variable
/$animal/ # matches d, o, g
/$animal$/ # matches d, o, g at end of line
/\$\d\.\d\d/ # matches a dollar sign, then a
# digit, then a dot, then
# another digit, then another
# digit, eg $9.99
# Careful! Also matches $9.9999
-.매칭수 정하기 ( 몇번 매칭되냐? )
매칭수 정의 문자
의미
?
0 또는 1
*
0 이상
+
1 이상
{n}
n 번
{n,}
n번 이상
{n,m}
n번부터 m번 사이
-.예제
/Mr\.? Fenwick/; # Matches "Mr. Fenwick" or "Mr Fenwick"
/camel.*perl/; # Matches "camel" before "perl" in the
# same line.
/\w+/; # One or more word characters.
/x{1,10}/; # 1-10 occurrences of the letter "x".
창고/Backup_2013_0121
Day2 - 02
반응형
반응형