날짜: 1996-04-20 | 글쓴이: 도아 | 6569 번 | 프린트 | 메일로보내기

펄 - 제 19강 서브루틴


서브루틴이 없는 프로그래밍 언어는 무엇인가 ? 펄에서 서브루틴의 정의는 다음과 같은 형식을 취한다:
	sub NAME { 
		STATEMENTS; 
	} 
  • C와 달리 서브루틴은 형식을 지정하지 않는다. 모든 서브루틴은 매개변수로서 리스트를 취한다. 서브루틴은 리스트나 스칼라 값을 리턴할 수 있다.
  • 파스칼과 달리 서브루틴내 서브루틴을 둘 수 없다. 사실 서브루틴들은 다른 서브루틴 블럭을 제외한 임의의 위치에서 정의될 수 있다. 이 것은 아래에서 사용될 것이다.
  • 포트란과 달리 서브루틴과 함수사이의 구분이 존재하지 않는다. 앞으로 서브루틴의 사용을 고수하겠지만 용어는 서로 혼용할 것이다.
  • 서브루틴의 매개변수는 특수 배열 @_을 통해 전달된다.
  • 이제 변수의 사용범위를 고려하자.
    • 이 문서의 목적상 모든 변수는 전역변수로 고려할 것이다.
    • 재귀 호출도 가능하지만 이 문서의 목적에 벗어나는 것이다.
펄내에서 서브루틴은 내장된 서브루틴과 다른 방법으로 호출된다.
	&NAME(arg1,arg2,etc); 
	# - 또는 - (다음처럼 어떠한 매개변수도 취하지 않는다.
	&NAME; 
	# 리턴 값은 다른 임의의 값과 마찬가지로 사용된다.
	$loudestInstrument = &measureLoudest(@allInstruments); 
	# error이라는 서브루틴을 정의한다.
	sub error { 
		($message) = @_; 
		print("ERROR:", 
			$message, 
			"<p>도움을 받기 원하면 이전 페이지의 저자에게 연락하기 바란다.\n"); 
		exit(0); 
	} 
	if ( ! $recipient ) { 
		# 폼이 해당되는 필드를 갖고 있지 않다. 
		# 적당한 오류메시지를 출력한다.
		&error("회신 주소가 빠졌습니다."); 
	} 
서브루틴의 정의는 프로그램의 흐름에 어떠한 영향도 미치지 않는 다는 것을 주의하기 바란다.


다음글: 펄 - 제 20강 파일검사 연산자 (6364)1996-04-21
이전글: 펄 - 제 18강 예 2 (5306)1996-04-19

세상사는 이야기

  • 찾아라! 아이폰 순정용 >
  • 만원대 피젯 스피너를 >
  • 망하는 길을 택한 쿠팡 >
  • 물놀이에 적당한 가성 >
  • 컴퓨터를 IPTV로 2, po >
  • 컴퓨터를 IPTV로 만들 >
  • Warning.or.kr도 우회 >
  • 한국의 100대 부자, 어 >
  • 세상을 바꾼 크롬: 크 >
  • 장난(?)으로 시작한 여 >


  • RSS 구독 (익명 | 회원 | 강좌 | 포럼)
    (C) 1996 ~ 2017 QAOS.com All rights reserved.