맥에서 펄 시작 방법 질문입니다.

사과먹는 곰돌이의 이미지

맥 10.7.5에서 펄 v.5.12.3을 갖고 펄을 막 시작하려는 학생입니다. 프로그래밍 언어가 펄이 처음인데 도통 어떻게 시작해야 할지 막막해서 질문 올립니다.
Learning Perl을 갖고 터미널에서 시작해보려고 합니다만 가장 간단한 헬로 월드마저 책에 쓰여 있는대로 예쁘게 실행이 안되네요.

#! /usr/bin/perl은 기능을 하긴 하는 건지도 모르겠고, 책에 나온 대로 쳐도 실행은 안 되고 hello world라는 단어를 출력하려면 perl -e 'print "hello world"'라고 쳐야만 되는 것 같아요. 쉬뱅라인 없이도 perl -e 'print "hello world"'라고만 쳐도 실행이 되긴 되는데, 역시나 같은 방법으로 다른 명령문들을 쳐봐도 오류만 수두룩하고…대체 내가 쓰고 있는 이 문제의 언어가 책에서 소개해주고 있는 그 펄이 맞긴 맞는 건가 싶을 만큼 책에 나온 대로 되는 게 하나도 없어요ㅠㅠ제가 뭔가 잘못하고 있는 걸까요? 맥에서 펄 쓰시는 분들은 대체 어떻게 쓰시나요?

raymundo의 이미지

perl -e 라고 실행하는 것은 터미널 창에서 프롬프트 뒤에 바로 입력하셨다는 얘기일텐데,

반면에 #!/usr/bin/perl 이나 그 아래에 적혀있었을 코드들은 그렇게 입력하는 게 아니라, perl 인터프리터에게 전달할 내용입니다.

$ perl                   - 일단 perl 을 실행하고
print "hello world\n";   - 코드를 적고
    - 더 입력할 게 없다는 뜻으로 Ctrl+D 를 눌러주면
hello world   - 이렇게 실행이 됩니다.

그런데 매번 코드를 이렇게 입력하는 건 매우 힘듭니다. 같은 코드를 여러번 실행해 보려면 매번 입력해야 하고,
특히나 오타를 냈을 때 윗줄로 되돌아가 수정하기도 힘들고.

따라서 대부분의 경우는 코드를 텍스트 파일에 저장을 하고, perl 인터프리터에게는 그 파일의 경로를 알려주어서
읽고 실행하게 합니다.

 - 텍스트 에디터로 test.pl 파일을 작성한 후
$ cat test.pl   - 확인차 파일의 내용을 한번 출력시켜보고
print "hello world\n";   - 제대로 들어 있군요
 
$ perl test.pl  - 이제 perl 에게 그 파일의 이름을 알려주면
hello world     - 실행 결과가 나오죠.

이제는 같은 코드를 몇번이든 재실행할 수도 있고, 오타나 오류가 있다면 저 파일을 수정해주면 됩니다.
텍스트 에디터는 무엇을 써도 상관없지만, 어쨌거나 워드프로세서처럼 서식이 포함된 바이너리 파일이 아니라
말 그대로 텍스트만 들어있는 형태로 저장해야 하고(윈도우의 메모장처럼), 프로그래밍에 도움이 되는 각종
기능(자동 들여쓰기, 자동 완성 등등)이 있는 코딩용 에디터를 쓰시는 게 좋겠지요.

그런데 매번 실행할 때마다 'perl 파일명' 형태로 하자니 그것도 귀찮으니까, 파일명만 입력하여 실행하고
싶을 수 있습니다. 이럴 때 사용하는 게 쉬뱅라인입니다.

$ cat test.pl
#!/usr/bin/perl           - 쉬뱅라인을 추가하고
print "hello world\n";
 
$ chmod +x test.pl        - 이 소스 코드 파일에 실행권한을 준 후 (이건 한번만 하면 됩니다)
 
$ ./test.pl               - 이제는 이 파일 자체가 어떤 실행파일인 것처럼 실행 가능
hello world

좋은 하루 되세요!

사과먹는 곰돌이의 이미지

무지의 바다를 헤매고 있는 와중에 이토록 친절히 알려 주시니 그저 감사할 따름입니다. 덕분에 이제 제대로 시작할 수 있게 되었네요. 좋은 주말 되세요!

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.