summaryrefslogtreecommitdiff
path: root/lib/Config/Tree/Node/Section.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Config/Tree/Node/Section.pm')
-rw-r--r--lib/Config/Tree/Node/Section.pm41
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/Config/Tree/Node/Section.pm b/lib/Config/Tree/Node/Section.pm
new file mode 100644
index 0000000..833f5c5
--- /dev/null
+++ b/lib/Config/Tree/Node/Section.pm
@@ -0,0 +1,41 @@
1package Config::Tree::Node::Section;
2use parent 'Config::Tree::Node';
3use strict;
4use warnings;
5
6sub new {
7 my $class = shift;
8 my $self = $class->SUPER::new(@_);
9 $self->{_subtree} = {};
10 return $self;
11}
12
13sub subtree {
14 my $self = shift;
15 if (my $key = shift) {
16 if (my $val = shift) {
17 $self->{_subtree}{$key} = $val;
18 }
19 return $self->{_subtree}{$key};
20 }
21 return $self->{_subtree};
22}
23
24sub keys {
25 my $self = shift;
26 return keys %{$self->{_subtree}};
27}
28
29sub has_key {
30 my ($self, $key) = @_;
31 return $self->subtree($key);
32}
33
34sub delete {
35 my ($self, $key) = @_;
36 delete $self->{_subtree}{$key};
37}
38
39sub is_leaf { 0 }
40
411;

Return to:

Send suggestions and report system problems to the System administrator.