=encoding utf8
ì´ íì¼ì ë´ì© ê·¸ëë¡ ì½ê³ ìë¤ë©´ ì°ì¤ê½ì¤ë¬ì´ 문ìë 무ìí´ì£¼ì¸ì.
ì´ ë¬¸ìë PODë¡ ì½ì ì ìëë¡ POD íì(F 문ì를
íì¸íì¸ì)ì¼ë¡ ìì±ëì´ ììµëë¤.
=head1 NAME
perlko - íêµì´ Perl ìë´ì
=head1 DESCRIPTION
Perlì ì¸ê³ì ì¤ì ê²ì íìí©ëë¤!
Perlì ê°ë Bë¼ê³ í기ë í©ëë¤ë§
ë¤ë¥¸ ë리 ìë ¤ì§ ê²ë¤ ì¤ìì Bë¼ê³
í기ë í©ëë¤. ì¬ì¤ ì´ê²ì ë¼ì ë§ì¶ ê²ì´ë©° Perlì´ ì´ê²ë¤ì 첫 ê¸ì를
ê°ì ¸ìì ì´ë¦ì ë¶ì¸ ê²ì ìëëë¤. Perlì ì°½ìì Larryê° ì²« ë²ì§¸ ì´ë¦ì
먼ì ìê°íê³ ë리 ìë ¤ì§ ê²ì ëì¤ì ì§ì기 ë문ì
ëë¤. ê·¸ë 기 ë문ì
Bì 모ë ë문ìê° ìëëë¤. ë리 ìë ¤ì§ ì´ë¤ ê²ì ê°ì§ê³ ë
¼ìíë
ê²ì ìë¯¸ê° ììµëë¤. Larryë ë ê° ë¤ ì§ì§í©ëë¤.
ê°ë pê° ì문ìë¡ ìì±ë Bì ë³¼ ê²ì
ëë¤. Pê° ë문ìë¡ ëì´ ìë
Bì ì¸ì´ë¥¼ 참조í ë ì°ì´ë©° Bì²ë¼ pê° ì문ìì¸ ê²½ì°ë ì¬ë¬ë¶ì
íë¡ê·¸ë¨ì ì»´íì¼íê³ ë릴 ë ì¬ì©ëë í´ì기를 ì§ì¹í ë ì¬ì©ë©ëë¤.
=head1 Perlì ê´íì¬
Perlì 본ë 문ìì´ ìì±ì ìí´ ë§ë¤ì¡ì§ë§ ì§ê¸ì ìì¤í
ê´ë¦¬ì ì¹ ê°ë°,
ë¤í¸ìí¬ íë¡ê·¸ëë°, GUI ê°ë° ë±ì í¬í¨í ì¬ë¬ ë¶ì¼ìì ë리 ì¬ì©ëë
ë²ì© íë¡ê·¸ëë° ì¸ì´ì
ëë¤.
ì´ ì¸ì´ë ìë¦ë¤ì(ì주 ìê³ , ì°ìíê³ , ì주 ì ê³ )ë³´ë¤
ì¤ì©ì (ì¬ì©í기 ì½ê³ , í¨ì¨ì ì´ë©°, ê°ë¥í ìµëí)ì¸ ê²ì ì§í¥íê³ ììµëë¤.
ì¬ì©í기 ì½ê³ , ì ì°¨ì íë¡ê·¸ëë°ê³¼ ê°ì²´ ì§í¥ íë¡ê·¸ëë°ì 모ë ì§ìíê³ ,
ê°ë ¥í 문ìì´ ì²ë¦¬ 기ë¥ì ë´ì¥íê³ , ì¸ììì ê°ì¥ ì¸ìì ì¸ ì 3ìì 모ë
모ìì²ë¥¼ ê°ì§ê³ ìë¤ë ê²ì Perlì ê°ì¥ ì¤ìí í¹ì§ì
ëë¤.
Perlì ì¸ì´ì í¹ì§ì F 문ììì ìê°í©ëë¤.
ì´ë² 릴리ì¤ìì ê°ì¥ ì¤ìí ë³íë Fìì ë
¼ìí©ëë¤.
ëí ë¤ìí ì¶íì¬ê° ì¶íí ë§ì Perl ì±
ì ë¤ìí 주ì 를 ë¤ë£¨ê³ ììµëë¤.
ìì¸í ì ë³´ë F 문ì를 íì¸íì¸ì.
=head1 ì¤ì¹
ì¬ë¬ë¶ì´ ë¹êµì íëì ì´ìì²´ì 를 ì¬ì©íê³ ìê³ íì¬ ë²ì ì Perlì
ì§ìì ì¼ë¡ ì¤ì¹íê³ ì¶ë¤ë©´ ë¤ì ëª
ë ¹ì ì¤ííì¸ì.
./Configure -des -Dprefix=$HOME/localperl
make test
make install
ìì ëª
ë ¹ì ì¬ë¬ë¶ì íë«í¼ì ë§ê² íê²½ì ì¤ì íê³ ì»´íì¼ì ìíí í,
í기 í
ì¤í¸ë¥¼ ìííë¤, í ëë í°ë¦¬ íë¶ì F ëë í°ë¦¬ì perlì
ì¤ì¹í©ëë¤.
ì¬ë¬ë¶ì´ ì´ë í 문ì ë ê²ªê² ëê±°ë ì¬ì©ì ì ì ë²ì Perlì ì¤ì¹í íìê° ìë¤ë©´
íì¬ ë°°í¬íì ë¤ì´ìë F íì¼ ìì ìì¸í ì¤ëª
ì ì½ì´ì¼ í©ëë¤.
ì¶ê°ì ì¼ë¡ ì¼ë°ì ì´ì§ ìì ë¤ìí íë«í¼ìì Perlì ë¹ëíê³ ì¬ì©íë
ë°©ë²ì ëí ëìë§ê³¼ ê·ëì´ ì íìë ë§ì ìì F íì¼ì´ ììµëë¤.
ì¼ë¨ Perlì ì¤ì¹íê³ ëë©´ C ë구를 ì´ì©í´ íë¶í 문ì를 ì¬ì©í
ì ììµëë¤. ììí기 ìí´ì ë¤ì ëª
ë ¹ì ì¤ííì¸ì.
perldoc perl
=head1 ì¤íì ì´ë ¤ìì 겪ëë¤ë©´
Perlì ë¨ê°ì§ìì ë¶í° ë¡ì¼ ê³¼íê¹ì§ 모ë ë¶ì¼ìì ì¬ì©í ì ìë í¬ê³
ë³µì¡í ìì¤í
ì
ëë¤. ì¬ë¬ë¶ì´ ì´ë ¤ìì ë¶ëªíìë ê·¸ 문ì ë ì´ë¯¸ ë¤ë¥¸
ì¬ëì´ í´ê²°íì ê°ë¥ì±ì´ ëìµëë¤. 문ì를 모ë íì¸íëë°ë ë²ê·¸ê°
íì¤íë¤ë©´ C ë구를 ì´ì©í´ì ì í¬ìê² ë²ê·¸ë¥¼ ë³´ê³ í´ì£¼ì¸ì.
Cì ëí ë ìì¸í ì ë³´ë C ëë C를
ëª
ë ¹ì¤ìì ì¤íí´ì íì¸í ì ììµëë¤.
Perlì ì¬ì© ê°ë¥íê² ë§ë¤ìë¤ íëë¼ë Perlì ê³ìí´ì ì§íí기 ë문ì
ì¬ë¬ë¶ì´ ë§ë¥ë¨ë¦° ë²ê·¸ë¥¼ ìì íê±°ë ì¬ë¬ë¶ì´ ì ì©íë¤ê³ ìê°í ë²í
ìë¡ì´ 기ë¥ì´ ì¶ê°ë ì¢ ë ìµì ë²ì ì´ ìì ì ììµëë¤.
ì¬ë¬ë¶ì íì ìµì ë²ì ì perlì CPAN (Comprehensive Perl Archive Network)
ì¬ì´í¸ L ìì ì°¾ì ì ììµëë¤.
perl ìì¤ì ê°ë¨í í¨ì¹ë¥¼ ë±ë¡íê³ ì¶ë¤ë©´ F 문ìì
B를 ì´í´ë³´ì¸ì.
ê·¸ë¥ ê°ì¸ì ì¼ë¡ ì°¸ê³ íì¸ì.
ì ê° ì´ê²ì²ë¼ ë©ì§ 물건ì ë§ë ë¤ë ê²ì ì¬ë¬ë¶ì´ ì기를 ë°ëëë¤.
ê·¸ê²ì ì ì´ì¼ê¸°ì B를 기ìê²í기 ë문ì
ëë¤.
ì´ê²ì´ ì¬ë¬ë¶ì ê·ì°®ê² íë¤ë©´ ì¬ë¬ë¶ì Bì
ëí ìê°ì ì ì í´ì¼ í ìë ììµëë¤. íì§ë§ ì´ì¨ê±°ë ì¬ë¬ë¶ì
Perlì ì¬ì©íëë°ë 문ì ê° ìëµëë¤. :-)
- Bë¡ë¶í°.
=head1 ì¸ì½ë©
Perlì 5.8.0íë¶í° ì ëì½ë/ISO 10646ì ëí´ ê´ë²ìíê² ì§ìí©ëë¤.
ì ëì½ë ì§ìì ì¼íì¼ë¡ íì¤ì¼ì ë¹ë¡¯í ì¸ê³ ê°êµìì
ì ëì½ë ì´ì ì ì°ê³ ììê³ ì§ê¸ë ë리 ì°ì´ê³ ìë ìë§ì ì¸ì½ë©ì
ì§ìí©ëë¤. ì ëì½ëë ì ì¸ê³ìì ì°ì´ë 모ë ì¸ì´ë¥¼ ìí
í기 ì²´ê³(ì ë½ì ë¼í´ ìíë²³, í¤ë¦´ ìíë²³, ê·¸ë¦¬ì¤ ìíë²³, ì¸ëì ëë¨ ìììì
ë¸ë¼ë¯¸ ê³ì´ ì¤í¬ë¦½í¸, ìë 문ì, íë¸ë¦¬ 문ì, íì¤ì¼ì íì, íêµì´ì íê¸,
ì¼ë³¸ì´ì ê°ë, ë¶ë¯¸ ì¸ëìì í기 ì²´ê³ ë±)를 ìì©íë ê²ì 목íë¡ íê³
ì기 ë문ì 기존ì ì°ì´ë ê° ì¸ì´ ë° êµê° ê·¸ë¦¬ê³ ì´ì ì²´ê³ì ê³ ì í
문ì ì§í©ê³¼ ì¸ì½ë©ì ì¸ ì ìë 모ë ê¸ìë ë¬¼ë¡ ì´ê³ 기존 문ì ì§í©ìì
ì§ìíê³ ìì§ ìë ì주 ë§ì ê¸ì를 í¬í¨íê³ ììµëë¤.
Perlì ë´ë¶ì ì¼ë¡ ì ëì½ë를 문ì ííì ìí´ ì¬ì©í©ëë¤.
ë³´ë¤ êµ¬ì²´ì ì¼ë¡ ë§íë©´ Perl ì¤í¬ë¦½í¸ ììì UTF-8 문ìì´ì ì¸ ì ìê³ ,
ê°ì¢
í¨ìì ì°ì°ì(ì를 ë¤ì´, ì ê·ì, index, substr)ê° ë°ì´í¸ ë¨ì
ëì ì ëì½ë ê¸ì ë¨ìë¡ ëìí©ëë¤.
ë ìì¸í ê²ì F 문ì를 ì°¸ê³ íì¸ì.
ì ëì½ëê° ë리 ë³´ê¸ë기 ì ì ë리 ì°ì´ê³ ììê³ , ì¬ì í ë리 ì°ì´ê³ ìë
ê°êµ/ê° ì¸ì´ë³ ì¸ì½ë©ì¼ë¡ ì
ì¶ë ¥ì íê³ ì´ë¤ ì¸ì½ë©ì¼ë¡ ë ë°ì´í°ì 문ì를
ë¤ë£¨ë ê²ì ë기 ìí´ L 모ëì´ ì°ì´ê³ ììµëë¤.
무ìë³´ë¤ L 모ëì ì¬ì©íë©´ ìë§ì ì¸ì½ë© ì¬ì´ì ë³íì ì½ê² í ì ììµëë¤.
=head2 Encode 모ë
=head3 ì§ì ì¸ì½ë©
L 모ëì ë¤ìê³¼ ê°ì íêµì´ ì¸ì½ë©ì ì§ìí©ëë¤.
=over 4
=item * C
US-ASCIIì KS X 1001ì ê°ì´ ì°ë ë©í°ë°ì´í¸ ì¸ì½ë©ì¼ë¡ íí
ìì±íì´ë¼ê³ ë¶ë¦¼. KS X 2901ê³¼ RFC 1557 ì°¸ê³ .
=item * C
MS-Windows 9x/MEìì ì°ì´ë íì¥ ìì±í. euc-krì 8,822ìì
íê¸ ìì ì ëí ê²ì. aliasë uhc, windows-949, x-windows-949,
ks_c_5601-1987. 맨 ë§ì§ë§ ì´ë¦ì ì ì íì§ ìì ì´ë¦ì´ì§ë§, Microsoft
ì íìì CP949ì ìë¯¸ë¡ ì°ì´ê³ ìì.
=item * C
KS X 1001:1998 ë¶ë¡ 3ìì ê·ì í ì¡°í©í. 문ì ë í¼í 리ë cp949ì ë§ì°¬ê°ì§ë¡
US-ASCIIì KS X 1001ì 8,822ìì íê¸ ìì ì ëí ê²ì¼ë¡ ì¸ì½ë© ë°©ìì ì í ë¤ë¦.
=item * C
RFC 1557ìì ê·ì í íêµì´ ì¸í°ë· ë©ì¼ êµíì© ì¸ì½ë©ì¼ë¡ US-ASCIIì
KS X 1001ì ë í¼í ë¦¬ë¡ íë ì ìì euc-krê³¼ ê°ì§ë§ ì¸ì½ë© ë°©ìì´ ë¤ë¦.
1997-8ë
ê²½ê¹ì§ ì°ìì¼ë ë ì´ì ë©ì¼ êµíì ì°ì´ì§ ìì.
=item * C
KS X 1001(KS C 5601)ì GL(ì¦, MSB를 0ì¼ë¡ í ê²½ì°)ì ëìì ëì ì¸ì½ë©.
US-ASCIIì ê²°í©íì§ ìê³ ë¨ë
ì¼ë¡ ì°ì´ë ì¼ì X11 ë±ìì ê¸ê¼´
ì¸ì½ë©(ksc5601.1987-0. '0'ì GLì ì미í¨)ì¼ë¡ ì°ì´ë ê²ì ì ì¸íê³ ë
ê±°ì ìì. KS C 5601ì 1997ë
KS X 1001ë¡ ì´ë¦ì ë°ê¾¸ìì. 1998ë
ìë ë
ê¸ì(ì ë¡í ë¶í¸ì ë±ë¡ ìí ë¶í¸)ê° ëí´ì¡ì.
=back
=head3 ë³í ìì
ì를 ë¤ì´, euc-kr ì¸ì½ë©ì¼ë¡ ë íì¼ì UTF-8ë¡ ë³ííë ¤ë©´
ëª
ë ¹ì¤ìì ë¤ìì²ë¼ ì¤íí©ëë¤.
perl -Mencoding=euc-kr,STDOUT,utf8 -pe1 file.utf8
ë°ëë¡ ë³íí ê²½ì° ë¤ìì²ë¼ ì¤íí©ëë¤.
perl -Mencoding=utf8,STDOUT,euc-kr -pe1 file.euc-kr
ì´ë° ë³íì ì¢ë í¸ë¦¬íê² í ì ìëë¡ ëì주ë Fê° Perlì
기본ì¼ë¡ ë¤ì´ììµëë¤. ì´ ì í¸ë¦¬í°ë L 모ëì ì´ì©í ìì Perl
ì í¸ë¦¬í°ë¡ ì´ë¦ìì ì ì ìë¯ì´ Unixì C를 모ë¸ë¡ í ê²ì
ëë¤.
ì¬ì©ë²ì ë¤ìê³¼ ê°ìµëë¤.
piconv -f euc-kr -t utf8 file.utf8
piconv -f utf8 -t euc-kr file.euc-kr
=head3 ëª¨ë² ì¬ë¡
Perlì 기본ì ì¼ë¡ ë´ë¶ìì UTF-8ì ì¬ì©íë©° Encode 모ëì íµí´
ë¤ìí ì¸ì½ë©ì ì§ìíì§ë§ íì ë¤ì ê·ì¹ì ì§í´ì¼ë¡ì¨ ì¸ì½ë©ê³¼
ê´ë ¨í ë¤ìíê² ë°ìí ì ìë 문ì ì ê°ë¥ì±ì ì¤ì´ë ê²ì ì¶ì²í©ëë¤.
=over 4
=item * ìì¤ ì½ëë íì UTF-8 ì¸ì½ë©ì¼ë¡ ì ì¥
=item * ìì¤ ì½ë ìë¨ì C