A terminal assistant for ordinary Perl configurations
Sim::OPT::Config is an optional terminal assistant for creating, inspecting, validating and editing ordinary Sim::OPT Perl configuration files. It does not replace the configuration language and it is not required to run Sim::OPT.
The design aim is to assist without taking ownership of the experiment.
Main areas
The interactive interface covers model and project paths, search structure, variable discretisation and initial levels, execution options, simulation settings, objectives and result processing, and common morphing operations. It also provides validation, previews, presets, loading of trusted existing files and save/export commands.
Presets
Built-in presets include ESP-r-oriented configurations, block and single-search variants, star exploration, morph-only operation, precomputed search and minimal/example configurations. Execution-only presets can change execution flags without replacing the paths, search structure, objectives or design-variable definitions already present.
Source-preserving updates
When editing an existing file, Config can preserve the original source and manage only the supported settings. %dowhat is treated key by key. A true no-op save preserves the source byte-for-byte, and an existing destination receives a backup.
Because Perl executes statements in order, an override appended at the end of a file cannot retroactively recompute values that were derived earlier. In such cases a clean export or manual placement of the assignment is more appropriate.
Validation
The validator checks structural relationships that can be inferred from the configuration, but it is deliberately conservative. Overlapping blocks can be legitimate and therefore produce warnings rather than automatic rejection. The validator cannot prove that an external model or a scientific choice is semantically correct.
Trust model
Loading an existing configuration executes Perl in a separate package. Namespace separation is not a security sandbox; existing files should therefore be treated as trusted local code.