our $VERSION = '1.02';
-use B qw(minus_c save_BEGINs);
-use Carp;
+use B ();
+
+our $BEGIN_output;
+our $saveout_fh;
sub import {
my ($class, @options) = @_;
my ($quiet, $veryquiet) = (0, 0);
if ($options[0] eq '-q' || $options[0] eq '-qq') {
$quiet = 1;
- open (SAVEOUT, ">&STDOUT");
+ open ($saveout_fh, ">&", STDOUT);
close STDOUT;
open (STDOUT, ">", \$O::BEGIN_output);
if ($options[0] eq '-qq') {
my $backend = shift (@options);
eval q[
BEGIN {
- minus_c;
- save_BEGINs;
+ B::minus_c;
+ B::save_BEGINs;
}
CHECK {
if ($quiet) {
close STDOUT;
- open (STDOUT, ">&SAVEOUT");
- close SAVEOUT;
+ open (STDOUT, ">&", $saveout_fh);
+ close $saveout_fh;
}
# Note: if you change the code after this 'use', please
}
];
if ($@) {
- croak "Loading compiler backend 'B::$backend' failed: $@";
+ my $msg = "$@";
+ require Carp;
+ Carp::croak("Loading compiler backend 'B::$backend' failed: $msg");
}
}