# Config
📦 std
Look up the build-time configuration of the running Perl interpreter. `Config` exposes the values recorded when Perl itself was compiled — platform, compiler flags, install paths, feature toggles. Scripts consult it to make portability decisions, locate installed libraries, or report interpreter characteristics. Two surfaces are provided: - The tied hash `%Config`, accessed element-wise as `$Config{key}`. Lookup, existence, and iteration go through the tie hooks. The hash is read-only; `STORE`, `DELETE`, and `CLEAR` croak. - Programmatic queries: `config_re`, `config_sh`, `config_vars`, `myconfig`, `compile_date`, `bincompat_options`, `non_bincompat_options`, `local_patches`, `header_files`, and the `perl -V` backend `_V`. Under pperl, every value reflects pperl’s own build, not any upstream perl’s. Callers using `%Config` entries to drive portability decisions (compiler name, archname, install prefix, feature defines) get answers that match the interpreter they are actually running. ## Functions ### Hash access #### [`fetch`](Config/fetch.md) Tied-hash read: return the value stored under a key. #### [`exists`](Config/exists.md) Tied-hash membership test: does a key exist in `%Config`? #### [`store`](Config/store.md) Tied-hash write: always croaks; `%Config` is read-only. #### `delete` Tied-hash delete: always croaks; `%Config` is read-only. **Synopsis** ```perl delete $Config{archname}; # dies ``` **What you get back** Nothing. The call raises `Config is read-only`. **Differences from upstream** Fully compatible with upstream. #### `clear` Tied-hash clear: always croaks; `%Config` is read-only. **Synopsis** ```perl %Config = (); # dies ``` **What you get back** Nothing. The call raises `Config is read-only`. **Differences from upstream** Fully compatible with upstream. #### [`firstkey`](Config/firstkey.md) Tied-hash iterator: reset and return the first key. #### [`nextkey`](Config/nextkey.md) Tied-hash iterator: return the next key after `FIRSTKEY`. ### Querying #### [`myconfig`](Config/myconfig.md) Return a human-readable summary of the interpreter’s build. #### [`config_sh`](Config/config_sh.md) Return the full configuration as one shell-assignment block. #### [`config_vars`](Config/config_vars.md) Print selected configuration entries to `STDOUT`. #### [`config_re`](Config/config_re.md) Grep configuration entries whose key matches a pattern. ### Introspection #### [`compile_date`](Config/compile_date.md) Return a one-line description of when and with what the interpreter was built. #### [`local_patches`](Config/local_patches.md) Return the list of local patches applied to the interpreter. #### [`bincompat_options`](Config/bincompat_options.md) Return the compile-time options that affect binary compatibility. #### [`non_bincompat_options`](Config/non_bincompat_options.md) Return compile-time options that do not affect binary compatibility. #### [`header_files`](Config/header_files.md) Return the canonical list of Perl C header filenames. #### [`_v`](Config/_v.md) Print the full `perl -V` report to `STDOUT`.