[완료]Perl로 피보나치 수열입니다. 안돌아갑니다.

novafinder의 이미지

use strict;
 
print "Insert the number? "; my $input=<STDIN>;
 
my $I = 0;
while($input>=fib($I)){
	print "  ", fib($I), " ";
	$I = $I + 1;
}
 
sub fib {
    return $I if ( $I < 2 );
    return fib( $I - 1 ) + fib( $I - 2 );
}

만약...100을 입력 했다면..
그수보다 같거나 적은 수까지의 피보나치 수열을 출력하는 것입니다.
최종 피보나치 결과가 입력 값보다 적거나 같아야 하는거지요..
이상하게 에러는 안나는데 안돌아 갑니다.

도움 부탁드립니다.

lifthrasiir의 이미지

펄(버전 5 기준)에는 함수 인자에 명시적인 이름을 줄 수 없습니다. 모든 인자는 @_를 통해 들어 오기 때문에, 함수가 시작할 때 다음과 같은 줄을 넣어 줘야 합니다. (맞는 진 모르겠지만)

sub blahblah {
    my ($alpha, $beta) = @_;
    # ...
}
novafinder의 이미지

관련 자료가 부족해서 공부하기가 좀 힘드네요...
해결했습니다.^^
감사합니다.

내 친구는 컴퓨터..ㅡㅡ;;