1 번째 수정본 소스 보기 : Perl/Java프로그래머를위한Perl소개
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: Perl/Java프로그래머를위한Perl소개 는 읽기 전용 페이지입니다.
* 원문: [http://kevinboone.net/javaperl.html An introduction to Perl for Java programmers -- Kevin Boone's Web site] * 이하의 내용은 원문의 내용 중 코드 비교 부분을 중점으로 요약 == # 개요 == Perl과 자바는 많은 부분이 비슷하고, 많은 부분이 다르다. 둘 다 절차적이고, 비슷한 키워드와 구조를 가지고 있고, 기능은 서브루틴(메쏘드,함수)으로 분리되고, 객체지향과 예외처리, 패키지를 지원한다. 반면 펄은 문법이 매우 유동적이고, 기본 언어의 기능이 자바보다 훨씬 많다. 유동적인 문법이란 말은 펄은 같은 일을 하는 데 여러 가지 다른 방법을 지원한다는 뜻이다. 다음과 같은 자바 코드가 있다면, {{{#!vim java if (!test) { throw new Exception ("aargh"); } }}} 펄에서는 똑같이 다음과 같이 쓸 수 있다: {{{#!vim perl if (!test) { die ("aargh"); } }}} 이것은 자바 버전과 매우 유사하다. 하지만 이것은 다음과 같이 쓸 수도 있다: {{{#!vim perl unless (test) { die ("aargh"); } }}}
unless
는 '~가 아니라면'의 뜻이다. 그러나 더 보편적으로, 숙련된 펄 해커들은 다음과 같은 식으로 쓸 것이다: {{{#!vim perl test or die ("aargh"); }}} 왜 자바로는 똑같이 압축된 형태로 쓸 수 없는가? 자바는 문법 구조가 매우 경직되어 있다. 첫째로 논리 연산자 AND(&&)나 OR(||)는 불리언 타입을 갖는 피연산자에만 쑬 수 있다. test는 여기 해당된다고 가정해도 throw에서는 값을 얻을 수 없어서 논리값 비교에 쓸 수 없다. 두번째로 논리 연산자들로 구성된 구문은 그 자체가 불리언 타입을 반환해야 한다. 셋째로 논리 비교식은 독립적인 구문으로 존재할 수 없다.
if (x || y) {};
는 괜찮지만
x || y;
는 불가능하다.
---- [[기타분류]]
Perl/Java프로그래머를위한Perl소개
페이지로 돌아가기 |
다른 수정본 보기