Config...ainFile(3pm)
okay bestie, welcome to the Config::Model::Backend::PlainFile page πΈ β straight out of the User Contributed Perl Documentation, and honestly? she's carrying the whole Config::Model backend friend group. Let's get into it π
π NAME π
Config::Model::Backend::PlainFile β Read and write config as plain file. that's the whole job description and it's iconic, no notes.
πΈ VERSION πΈ
version 2.166. that's the one we're vibing with, periodt β¨
π SYNOPSIS π
use Config::Model;
my $model = Config::Model->new;
my $inst = $model->create_config_class(
name => "WithPlainFile",
element => [
[qw/source new/] => { qw/type leaf value_type uniline/ },
],
rw_config => {
backend => 'plain_file',
config_dir => '/tmp',
},
);
my $inst = $model->instance(root_class_name => 'WithPlainFile' );
my $root = $inst->config_root ;
$root->load('source=foo new=yes' );
$inst->write_back ;
so the way that plays out π«Ά after all that, the "/tmp" directory contains 2 files: "source" and "new" with "foo" and "yes" inside. literally two little files, chillin', doing their thing. slay.
π¦ DESCRIPTION π¦
This module is used directly by Config::Model to read or write the content of a configuration tree written in several files. Each element of the node is written in a plain file. one element β one file, no drama, we love a simple girl π
π Element type and file mapping π
Element values are written in one or several files depending on their type. so like, the type actually matters here bestie:
leafβ the leaf value is written in one file. this file can have several lines if the leaf type is"string"listβ the list content is written in one file. each line of the file is a value of the listhashβ Not supported π (rip, we simply do not support her)
π File mapping π
By default, the configuration file is named after the element name (like in the synopsis above). default behavior stays defaulting, iykyk.
The file parameter can also be used to specify a file name that take into account the path in the tree using &index() and &element() functions from Config::Model::Role::ComputeFunction.
For instance, with the following model:
class_name => "Foo",
element => [
string_a => { type => 'leaf', value_type => 'string'}
string_b => { type => 'leaf', value_type => 'string'}
],
rw_config => {
backend => 'PlainFile',
config_dir => 'foo',
file => '&element(-).&element',
file_mode => 0644, # optional
}
If the configuration is loaded with "example string_a=something string_b=else", this backend writes "something" in file "example.string_a" and "else" in file "example.string_b". look at her go β¨
The file_mode parameter can be used to set the mode of the written file. file_mode value can be in any form supported by chmod in Path::Tiny.
β Methods β
π§ read_leaf π§
Parameters: (obj, elt, check, file, args)
Called by read method to read the file of a leaf element. args contains the arguments passed to read method.
π read_hash (obj,elt,check,file,args);
Like read_leaf for hash elements.
π read_list π
Parameters: (obj, elt, check, file, args)
Like read_leaf for list elements.
π write π
write writes a file for each element of the calling class. Works only for leaf and list elements. Other element type are skipped. Always return 1 (unless it died before). π dramatic but true.
π AUTHOR π
Dominique Dumont, (ddumont at cpan dot org)
π SEE ALSO π
Config::ModelConfig::Model::BackendMgrConfig::Model::Backend::Any
π« AUTHOR π«
Dominique Dumont
π COPYRIGHT AND LICENSE π
This software is Copyright (c) 2005-2022 by Dominique Dumont.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999
and that's the whole page bestie π«Ά mwah, this one's running on perl v5.42.3 and dated 2026-07-23 β go forth and write some extremely plain, extremely correct files π β¨
π¦ where this page comes from
- ubuntu stonking: libconfig-model-perl 2.166-1 Β· LGPL-2.1-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms