现实案例(从
caff)举例说明短问题:
$CONFIG{'owner'} = q{Peter Palfrader}; $CONFIG{'email'} = q{peter@palfrader.org}; $CONFIG{'keyid'} = [ qw{DE7AAF6E94C09C7F 62AF4031C82E0039} ]; $CONFIG{'keyserver'} = 'wwwkeys.de.pgp.net'; $CONFIG{'mailer-send'} = [ 'testfile' ];
然后在代码中:eval`cat $ config`,访问%CONFIG
提供解决一般问题的答案,不仅仅是具体的例子。
解决方法
在代码中避免配置有很多原因,我在
Mastering Perl的配置章节中详细介绍了其中的一些。
>没有配置更改应该有破坏程序的风险。当然不应该有打破编译阶段的风险。
>人们不必编辑源来获得不同的配置。
>人们应该能够共享相同的应用程序而不使用通用的一组设置,而是重新安装应用程序只是为了更改配置。
应该允许人们创建几个不同的配置,而不必编辑源代码批量运行它们。
>您应该能够在不改变代码的情况下在不同的设置下测试应用程序。
人们不应该学习如何编程才能使用你的工具。
>您应该只是松散地将您的配置数据结构与信息的来源绑定在一起,以便后来的体系结构更改更容易。
>您真的希望在应用程序级别进行界面而不是直接访问。
我在掌握Perl课程中总结了这一点,告诉人们,第一个编程规则是创造一个你做得更少的工作和人们离开你的情况。当您将配置置于代码中时,您将花费更多时间处理安装问题并应对破损。除非你喜欢这样的事情,给人们一种改变设置的方法,而不会使你更多的工作。