--- /dev/null
+use XML::Parser;
+
+# this should be the only fixed constant
+$configuration_file = "/home/cadet/sacerdot/local/etc/helm/configuration.xml";
+
+$parser = new XML::Parser(Handlers => {Start => \&handle_start,
+ End => \&handle_end,
+ Char => \&handle_char});
+
+
+$parser->parsefile($configuration_file, ErrorContext => 3);
+
+
+sub handle_start
+{
+ if ($_[1] eq "value-of") {
+ $$varname .= ${$_[3]};
+ } elsif ($_[1] ne "configuration") {
+ $varname = $_[1];
+ }
+}
+
+sub handle_end
+{
+ if ($_[1] ne "value-of" && $_[1] ne "configuration") {
+ # Next line for debugging only:
+ # print "OK: #$_[1]# := #$$varname#\n";
+ $varname = undef;
+ }
+}
+
+sub handle_char
+{
+ $$varname .= $_[1];
+}