prep release
[p5sagit/Config-Any.git] / lib / Config / Any / Perl.pm
index ae7bd7b..7e02b9d 100644 (file)
@@ -1,75 +1,82 @@
-package Config::Any::Perl;\r
-\r
-use strict;\r
-use warnings;\r
-\r
-=head1 NAME\r
-\r
-Config::Any::Perl - Load Perl config files\r
-\r
-=head1 DESCRIPTION\r
-\r
-Loads Perl files. Example:\r
-\r
-    {\r
-        name => 'TestApp',\r
-        'Controller::Foo' => {\r
-            foo => 'bar'\r
-        },\r
-        'Model::Baz' => {\r
-            qux => 'xyzzy'\r
-        }\r
-    }\r
-\r
-=head1 METHODS\r
-\r
-=head2 extensions( )\r
-\r
-return an array of valid extensions (C<pl>, C<perl>).\r
-\r
-=cut\r
-\r
-sub extensions {\r
-    return qw( pl perl );\r
-}\r
-\r
-=head2 load( $file )\r
-\r
-Attempts to load C<$file> as a Perl file.\r
-\r
-=cut\r
-\r
-sub load {\r
-    my $class = shift;\r
-    my $file  = shift;\r
-    return eval { require $file };\r
-}\r
-\r
-=head1 AUTHOR\r
-\r
-=over 4 \r
-\r
-=item * Brian Cassidy E<lt>bricas@cpan.orgE<gt>\r
-\r
-=back\r
-\r
-=head1 COPYRIGHT AND LICENSE\r
-\r
-Copyright 2006 by Brian Cassidy\r
-\r
-This library is free software; you can redistribute it and/or modify\r
-it under the same terms as Perl itself. \r
-\r
-=head1 SEE ALSO\r
-\r
-=over 4 \r
-\r
-=item * L<Catalyst>\r
-\r
-=item * L<Config::Any>\r
-\r
-=back\r
-\r
-=cut\r
-\r
-1;\r
+package Config::Any::Perl;
+
+use strict;
+use warnings;
+
+use base 'Config::Any::Base';
+
+=head1 NAME
+
+Config::Any::Perl - Load Perl config files
+
+=head1 DESCRIPTION
+
+Loads Perl files. Example:
+
+    {
+        name => 'TestApp',
+        'Controller::Foo' => {
+            foo => 'bar'
+        },
+        'Model::Baz' => {
+            qux => 'xyzzy'
+        }
+    }
+
+=head1 METHODS
+
+=head2 extensions( )
+
+return an array of valid extensions (C<pl>, C<perl>).
+
+=cut
+
+sub extensions {
+    return qw( pl perl );
+}
+
+=head2 load( $file )
+
+Attempts to load C<$file> as a Perl file.
+
+=cut
+
+sub load {
+    my $class = shift;
+    my $file  = shift;
+
+    my( $exception, $content );
+    {
+        local $@;
+        $content = do $file;
+        $exception = $@;
+    }
+    die $exception if $exception;
+
+    return $content;
+}
+
+=head1 AUTHOR
+
+Brian Cassidy E<lt>bricas@cpan.orgE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2006-2015 by Brian Cassidy
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself. 
+
+=head1 SEE ALSO
+
+=over 4 
+
+=item * L<Catalyst>
+
+=item * L<Config::Any>
+
+=back
+
+=cut
+
+1;