… | |
… | |
1423 | |
1423 | |
1424 | $ext{meta} = { map { (split /=/, $_, 2)[0, 1] } split /\s+/, $1 } |
1424 | $ext{meta} = { map { (split /=/, $_, 2)[0, 1] } split /\s+/, $1 } |
1425 | if $source =~ /\A#!.*?perl.*?#\s*(.*)$/m; |
1425 | if $source =~ /\A#!.*?perl.*?#\s*(.*)$/m; |
1426 | |
1426 | |
1427 | $ext{source} = |
1427 | $ext{source} = |
1428 | "package $pkg; use 5.10.0; use strict 'vars', 'subs'; use utf8;\n" |
1428 | "package $pkg; use common::sense;\n" |
1429 | . "#line 1 \"$path\"\n{\n" |
1429 | . "#line 1 \"$path\"\n{\n" |
1430 | . $source |
1430 | . $source |
1431 | . "\n};\n1"; |
1431 | . "\n};\n1"; |
1432 | |
1432 | |
1433 | $todo{$base} = \%ext; |
1433 | $todo{$base} = \%ext; |
… | |
… | |
1451 | |
1451 | |
1452 | my $active = eval $v->{source}; |
1452 | my $active = eval $v->{source}; |
1453 | |
1453 | |
1454 | if (length $@) { |
1454 | if (length $@) { |
1455 | error "$v->{path}: $@\n"; |
1455 | error "$v->{path}: $@\n"; |
|
|
1456 | undef $@; # work around perl 5.10.0 utf-8 caching bug |
1456 | |
1457 | |
1457 | cf::cleanup "mandatory extension '$k' failed to load, exiting." |
1458 | cf::cleanup "mandatory extension '$k' failed to load, exiting." |
1458 | if exists $v->{meta}{mandatory}; |
1459 | if exists $v->{meta}{mandatory}; |
1459 | |
1460 | |
1460 | warn "$v->{base}: optional extension cannot be loaded, skipping.\n"; |
1461 | warn "$v->{base}: optional extension cannot be loaded, skipping.\n"; |