루비를 먼저배운 사람을 위한 펄

Posted by 미스란디르 Wed, 14 Feb 2007 18:17:00 GMT

요새 구글 통계를 달아놓고 방문자 수 보는 재미에 빠져있어서 심심하면 포스팅을 하고 싶어진다.

codegolf를 잠깐 참가해보고 perl유져들의 활약을 보면서 펄을 배워봐야겠단 생각이 다시 들어서 펄 튜터리얼을 따라해보면서 느낀점을 정리한 것이다. 하다가 졸려서 중단한거라, 나머지가 더 생길지도 모르겠다.

  • 펄의 @는 루비의 *와 매우 비슷하다. (array expantion)

  • perl is not object oriented. 객체에 어떤 행동을 시킨다는 것은 잊어버려라. 함수 인자처럼 넣은 녀석이 전혀 생각하지 못한 행동을 보일때도 있다.

  • perl은 shell과 상당히 유사한 행태를 보인다. open(INFO, ">>$file"); 은 쉘에서 >> filename 하는것과 같은 의미를 가진다. File.open(filename, 'a') 하는 것과 같다.

  • 파일이름에서 '-' 가 뜻하는 바가 같다. 표준입출력이다. '>-' 가 표준출력, '-'가 표준입력.

  • Enumerable#each 는 foreach로 대신한다. 파이썬이라면 for x in list 가 되겠다.

  • 펄은 문자열과 숫자의 구분이 모호하다. 숫자랑 문자를 그냥 비교해서 숫자처럼 비교할 수도 있고 문자처럼 비교할 수도 있다. 아주 제멋대로.

  • 거짓이 되는 조건은 0과 빈 문자열. "0"도 마찬가지. 거짓이 nil과 false뿐인 루비와는 좀 다르다.

  • elsif는 루비와 마찬가지.

  • $&, $_ 따위의 특별변수. 거~의다 똑같다.

  • 정규표현식 match는 완전 동일. 그러나 gsub는 좀 다르다. var.gsub(/regex/, 'substitution') 은, $var =~ s/regex/substitution/; 이 된다.

  • 루비처럼 정규표현식 리터럴 // 안에서도 변수로 문자열을 치환할 수 있다.

  • 문자열 치환을 늘여서 쓰면 ${var} 이 된다. 이거 어디서 많이 본 것 같지 않은가!

Posted in ,  | Tags ,  | no comments | no trackbacks

Comments

Trackbacks

Use the following link to trackback from your own site:
http://tisphie.net/typo/trackbacks?article_id=perl-for-rubyist&day=15&month=02&year=2007

Comments are disabled