0
我正在使用Perl中的階乘函數。 下面的代碼給我的錯誤Can't return outside a subroutine.
perl錯誤中的簡單階乘函數:在子例程外返回
factorial {
my $n = $ARGV[0];
if($n <= 1){
return 1; # ----- Error Here -----
}
else {
return $n * factorial($n - 1);
}
}
我相信我的if語句仍是子程序內。什麼導致了錯誤?
你可以用'sub factorial {...}'定義一個子程序。如果沒有'sub'關鍵字,它就是其他的東西,而不是子程序 – zdim
調用main函數'factorial();' – ssr1012
另外請注意,'$ ARGV [0]'是你的程序的第一個命令行參數,而不是第一個參數給你的子程序(在'$ _ [0]'中)。 –