Menu: YAML::XS benutzen wenn vorhanden
authorSven Schöling <s.schoeling@linet-services.de>
Wed, 15 Jul 2015 16:42:24 +0000 (18:42 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Mon, 20 Jul 2015 14:37:27 +0000 (16:37 +0200)
SL/Menu.pm

index d72bb36..1ecb52f 100644 (file)
@@ -3,10 +3,15 @@ package SL::Menu;
 use strict;
 
 use SL::Auth;
-use YAML::XS ();
+use YAML ();
 use File::Spec;
 use SL::MoreCommon qw(uri_encode);
 
+our $yaml_xs;
+BEGIN {
+   $yaml_xs =  eval { require YAML::XS };
+}
+
 sub new {
   my ($package, $domain) = @_;
 
@@ -19,7 +24,12 @@ sub new {
   my $nodes = [];
   my $nodes_by_id = {};
   for my $file (@files) {
-    my $data = YAML::XS::LoadFile(File::Spec->catfile($path, $file));
+    my $data;
+    if ($yaml_xs) {
+      $data = YAML::XS::LoadFile(File::Spec->catfile($path, $file));
+    } else {
+      $data = YAML::LoadFile(File::Spec->catfile($path, $file));
+    }
     _merge($nodes, $nodes_by_id, $data);
   }