"유령"패키지와 하위를 만들 수 있기를 원합니다. 이 같은 항목으로 구성 (INI) 파일이 :이 파일은 구문 분석Perl5에서 기능 토글 구현
[features]
sys.ext.latex = off
gui.super.duper.elastic = off
user.login.rsa = on
을하고, 나중에 개발자는 같은 질문에 요청할 수 있습니다 :
if (MyApp::Feature->enabled ('user.login.rsa') { ... }
(전체 아이디어는 마틴 파울러의 FeatureToggle에 기반을 http://martinfowler.com/bliki/FeatureToggle.html)
의 MyApp :: 기능에 전화를 잡기 위해 AUTOLOAD를 사용하여, 우리는이 API 제공 할 수 있습니다 INI 파일을 구문 분석에 대한 블록을 BEGIN :
을질문은 :
if (MyApp::Feature::User::Login::RSA) { ... }
만의 MyApp :: 기능을 갖는은 다음 API를 만들 수 있습니까?
대문자는 설정 파일에서 수정할 수 있습니다. 여기서는 문제가 아닙니다. 그리고 구현이 설정과 분리되어 있다는 것을 분명히 해두면, MyApp :: Feature :: User :: Login :: RSA가 없으며 절대로 존재하지 않을 것입니다. 이 기능 구현은 f.e. MyApp :: Human에서.
MyApp :: Feature :: Foo :: Bar를 두는 것은 그러한 패키지가 있어야한다는 것을 알고 있습니다. 그러나 개발자는 기능 패키지가 기능 토글을 관리한다는 점을 알고 있으며 아무런 문제가 없습니다. 본인은 너무 복잡해서 사용 가능 ($ 문자열) 비트를 사용하여 (첫 번째 예제를 찾을 수
if (package::package->method (string))
두 번째 더 나은 : 세 번째는 훨씬 더 쉽게 될 것
if (package::package->method)
:
if (package::package::package)
따라서 패키지 수준에서 AUTOLOAD를 시뮬레이션 할 수 있습니까?
인사말, Ro 비.
악마 :'의 MyApp는 :: 특징 :: 사용자가 :: 로그인 :: RSA'는하지 않습니다
당신은 패키지의 가져 오기 기능으로 넣어 사용하는
install_config
이 좀 더 쉽게 만들 수 있습니다 엄격한 건지, 그건 노약자 야. 마지막 부분을 함수 호출로 만들 수 있습니다 :'MyApp :: Feature :: User :: Login :: RSA()' – daxim