*{main::open} = sub { print "Ho\n"; };
####
my $glob_ref = do { no strict 'refs'; \*{'main::open'} };
*$glob_ref = sub { print "Ho\n"; };
##
##
BEGIN {
# Deleting and remaking the sub fails! ;(
delete $main::{open};
*{main::open} = sub { print "Ho\n"; };
use subs 'open';
}
##
##
BEGIN {
# Deleting and remaking the sub fails! ;(
delete $main::{open};
*{main::open} = sub { print "Ho\n"; };
BEGIN {
require subs;
import subs 'open';
}
}
##
##
use strict;
use warnings;
use subs qw( );
open(my $fh, '<', $0); # Calls CORE::open
BEGIN {
my $glob = do { no strict 'refs'; \*{'main::open'} };
*$glob = sub { print "Hi\n"; };
import subs 'open';
}
open(my $fh2, '<', $0); # Prints Hi
BEGIN {
delete $main::{open};
my $glob = do { no strict 'refs'; \*{'main::open'} };
*$glob = sub { print "Ho\n"; };
import subs 'open';
}
open(my $fh4, '<', $0); # Prints Ho
BEGIN {
delete $main::{open};
}
open(my $fh5, '<', $0); # Calls CORE::open