aboutsummaryrefslogtreecommitdiffstats
path: root/feature-tests
diff options
context:
space:
mode:
Diffstat (limited to 'feature-tests')
-rw-r--r--feature-tests/subscript.pl26
-rw-r--r--feature-tests/test.sub3
2 files changed, 25 insertions, 4 deletions
diff --git a/feature-tests/subscript.pl b/feature-tests/subscript.pl
index 74a5afe..8550409 100644
--- a/feature-tests/subscript.pl
+++ b/feature-tests/subscript.pl
@@ -19,6 +19,10 @@ my $functions = {};
init();
+sub _input {
+ return int rand 1000;
+}
+
sub load {
my $file = shift;
my $funcs;
@@ -26,16 +30,32 @@ sub load {
print "Loading from file: $file";
$funcs = do $file;
}
+ if (not defined $funcs) {
+ if ($@) {
+ print "failed to parse $file: $@";
- return unless ref $funcs eq 'HASH';
- print "Got hashref from file";
+ } elsif ($!) {
+ print "failed to read $file: $!";
+
+ }
+ return;
+ }
+ my $ref = ref $funcs;
+ if ($ref ne 'HASH') {
+ print "$file didn't return a hashref: ", defined $ref ? $ref : 'undef';
+ return;
+ }
foreach my $name (keys %$funcs) {
my $func = $funcs->{$name};
+ if (exists $functions->{$name}) {
+ print "Redefining function $name";
+ } else {
+ print "adding function: $name";
+ }
$functions->{$name} = $func;
}
- $functions = $funcs;
print "Loaded " . scalar(keys(%$funcs)) . " functions";
}
diff --git a/feature-tests/test.sub b/feature-tests/test.sub
index 6a24879..350e89d 100644
--- a/feature-tests/test.sub
+++ b/feature-tests/test.sub
@@ -1,6 +1,7 @@
{
'moo' => sub { print "Moo" },
- 'hello' => sub { print join(", ", @_) }
+ 'hello' => sub { print join(", ", @_) },
+ 'inp' => sub { print "input is : ", _input(); },
};