Perl은 옛날에 어떻게 모듈을 만들었을까요?

rom6346의 이미지

CPAN에는 모듈이 참 많아요.

필요한 것만 검색해서 설치해서 사용하면 되지요.

근데 여기서 궁금한 게 생겼습니다.

Perl이 생긴지 얼마 안 되었을 때? 초기의 Perl?

이 시절에는 모듈을 어떻게 만들었는지 궁금합니다.

래리 월이 Perl을 공개함과 동시에 몇 가지 모듈도 함께 제공했나요?

예를 들면, File::Copy 모듈은 파일이나 파일핸들을 복사하는 거잖아요?

파일을 복사하는 알고리즘을 Perl로 코딩한 건가요?

익명 사용자의 이미지

>Perl이 생긴지 얼마 안 되었을 때? 초기의 Perl?
>이 시절에는 모듈을 어떻게 만들었는지 궁금합니다.

그냥 함수들이 나열된 별도 파일을 만들고 require 'file.pl' 식으로 불러썼습니다.
그때는 package 같은 네임스페이스도 없었을 시절이겠죠.

> 래리 월이 Perl을 공개함과 동시에 몇 가지 모듈도 함께 제공했나요?

아마 있지 않았을까요? 요즘도 코어모듈이라고 기본으로 포함되어 배포되는게 있듯이..

>예를 들면, File::Copy 모듈은 파일이나 파일핸들을 복사하는 거잖아요?
>파일을 복사하는 알고리즘을 Perl로 코딩한 건가요?

https://www.metacpan.org/source/RJBS/perl-5.16.1/lib/File/Copy.pm 소스를 보시면 Perl기본함수와 플랫폼별로 경우에 따라서 처리하고 있는걸 볼수 있습니다. Perl로 코딩해도 결국 시스템함수가 호출되서 처리되겠죠. 사용자 입장에서는 그 하부구조를 신경쓰지 않고 Perl레벨에서 추상화 시켜주는 편한거고..

참고:
http://www.cpan.org/
http://en.wikipedia.org/wiki/CPAN

cleansugar의 이미지

펄 1.0 소스
http://groups.google.com/group/comp.sources.unix/tree/browse_frm/month/1988-02?_done=/group/comp.sources.unix/browse_frm/month/1988-02?&&pli=1

Early Perl 5

Perl 4 went through a series of maintenance releases, culminating in Perl 4.036 in 1993. At that point, Wall abandoned Perl 4 to begin work on Perl 5. Initial design of Perl 5 continued into 1994. The perl5-porters mailing list was established in May 1994 to coordinate work on porting Perl 5 to different platforms. It remains the primary forum for development, maintenance, and porting of Perl 5.[14]

Perl 5.000 was released on October 17, 1994.[15] It was a nearly complete rewrite of the interpreter, and it added many new features to the language, including objects, references, lexical (my) variables, and modules. Importantly, modules provided a mechanism for extending the language without modifying the interpreter. This allowed the core interpreter to stabilize, even as it enabled ordinary Perl programmers to add new language features. Perl 5 has been in active development since then.

Perl 5.001 was released on March 13, 1995. Perl 5.002 was released on February 29, 1996 with the new prototypes feature. This allowed module authors to make subroutines that behaved like Perl builtins. Perl 5.003 was released June 25, 1996, as a security release.

One of the most important events in Perl 5 history took place outside of the language proper and was a consequence of its module support. On October 26, 1995, the Comprehensive Perl Archive Network (CPAN) was established as a repository for Perl modules and Perl itself; as of April 2012, it carries over 24,500 modules by more than 9,500 authors.[16]

Perl 5.004 was released on May 15, 1997, and included among other things the UNIVERSAL package, giving Perl a base object to which all classes were automatically derived and the ability to require versions of modules. Another significant development was the inclusion of the CGI.pm module,[17] which contributed to Perl's popularity as a CGI scripting language.[18]

http://en.wikipedia.org/wiki/Perl

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

cjh의 이미지

perl 5.0 부터 CPAN 형태의 모듈을 지원했습니다. 4.0까지는 모두 내장 함수를 쓰거나 require/do 문으로 이미 작성된 라이브러리 파일 읽어들이기, 내지는
외부 라이브러리를 읽어들이기 위해서 oraperl 과 같이 (Oracle 함수가 들어있는 perl)과 같이 특정 라이브러리와 링크한 별도 빌드를 사용하거나 했었지요.

--
익스펙토 페트로눔

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.