를 사용하여 참조하여 서브 루틴을 호출하는 문제는, 당신과 같이 참조 (또는 이름)으로 함수를 호출 할 수 있습니다 : 내가 뭘하려고 오전 사용펄 : 펄에서 해시 값
my $functionName = 'someFunction';
&$functionName();
#someFunction defined here:
sub someFunction { print "Hello World!"; }
입니다 해시에서, 그래서 같은 값 : 내가 얻을
my %hash = (
functionName => 'someFunction',
);
&$hash{functionName}();
#someFunction defined here:
sub someFunction { print "Hello World!"; }
그리고 오류가 전역 기호 "$ 해시"명시 적으로 패키지 이름이 필요합니다.
내 질문은 : 중간 변수를 사용하지 않고이를 수행 할 올바른 방법이 있습니까?
이것에 대한 도움을 주시면 대단히 감사하겠습니다!
'my % hash = (function => \ & someFunction)'도 할 수 있습니다.'stric이 필요 없습니다. t 'refs''. – TLP
@TLP +1, 나는 * answer *하려고했습니다. '엄격한 사용; ** 많은 문제를 저장 ** ** – Dallaylaen
나는 그것을 사용할 수 있지만 다소 (현재) 코드를 추가합니다 ... 나는 런타임에 functionName 값을 동적으로 설정하고 있습니다. 이름으로 함수를 호출합니다. Perl은 너무 재미 있습니다! – Thumper