$opt->{1} = $null; # suitable for spawn() redirect
} else {
$opt->{verbose} ||= 1;
- $dst //= *STDERR{GLOB};
+ $dst //= \*STDERR;
$opt->{-progress} = sub { print $dst '# ', @_ };
}
}
{
my @n = stat($null_io) or die "stat(/dev/null): $!";
my @i = stat(STDIN) or die "stat(STDIN): $!";
- $null_io = *STDIN{IO} if "@n[0, 1]" eq "@i[0, 1]";
+ $null_io = \*STDIN if "@n[0, 1]" eq "@i[0, 1]";
}
my $http_date;
sub err ($;@) {
my $self = shift;
- my $err = $self->{2} // ($self->{pgr} // [])->[2] // *STDERR{GLOB};
+ my $err = $self->{2} // ($self->{pgr} // [])->[2] // \*STDERR;
my @eor = (substr($_[-1]//'', -1, 1) eq "\n" ? () : ("\n"));
print $err @_, @eor and return;
my $old_err = delete $self->{2};
$old_err->close if $! == EPIPE && $old_err;
- $err = $self->{2} = ($self->{pgr} // [])->[2] // *STDERR{GLOB};
+ $err = $self->{2} = ($self->{pgr} // [])->[2] // \*STDERR;
print $err @_, @eor or print STDERR @_, @eor;
}
eval { $lei->{sto}->wq_do('schedule_commit', $n) };
} else {
my $s = ($wq ? $wq->{lei_sock} : undef) // $lei->{sock};
- my $errfh = $lei->{2} // *STDERR{GLOB};
+ my $errfh = $lei->{2} // \*STDERR;
my @io = $s ? ($errfh, $s) : ($errfh);
eval { $lei->{sto}->wq_io_do('barrier', \@io, 1) };
}
'blib/script/'.$key;
}
-my @io_mode = ([ *STDIN{IO}, '+<&' ], [ *STDOUT{IO}, '+>&' ],
- [ *STDERR{IO}, '+>&' ]);
+my @io_mode = ([ \*STDIN, '+<&' ], [ \*STDOUT, '+>&' ], [ \*STDERR, '+>&' ]);
sub _prepare_redirects ($) {
my ($fhref) = @_;
my @s = stat(STDIN) or die "stat(STDIN): $!";
if ("@l[0, 1]" eq "@s[0, 1]") {
my $f = fcntl(STDIN, F_GETFL, 0);
- $self->{log_fh} = *STDIN{IO} if $f & O_RDWR;
+ $self->{log_fh} = \*STDIN if $f & O_RDWR;
}
$self;
}
my ($fds, $argc, @argv) = @_;
my $parent = $$;
require POSIX;
- my @old = (*STDIN{IO}, *STDOUT{IO}, *STDERR{IO});
+ my @old = (\*STDIN, \*STDOUT, \*STDERR);
my @rdr;
for my $fd (@$fds) {
open(my $newfh, '+<&=', $fd) or die "open +<&=$fd: $!";
$url = PublicInbox::LeiExternal::ext_canonicalize($url);
my $lei = bless {
env => \%ENV, opt => $opt, cmd => 'public-inbox-clone',
- 0 => *STDIN{GLOB}, 2 => *STDERR{GLOB},
+ 0 => \*STDIN, 2 => \*STDERR,
}, 'PublicInbox::LEI';
open $lei->{1}, '+<&=', 1 or die "dup: $!";
open $lei->{3}, '.' or die "open . $!";
my $lei = bless {
env => \%ENV, opt => $opt, cmd => 'public-inbox-fetch',
- 0 => *STDIN{GLOB}, 1 => *STDOUT{GLOB}, 2 => *STDERR{GLOB},
+ 0 => \*STDIN, 1 => \*STDOUT, 2 => \*STDERR,
}, 'PublicInbox::LEI';
PublicInbox::Fetch->do_fetch($lei, '.');
exit(($lei->{child_error} // 0) >> 8);