| Server IP : 202.155.9.250 / Your IP : 216.73.217.177 Web Server : LiteSpeed System : Linux srv339029361 5.15.0-177-generic #187-Ubuntu SMP Sat Apr 11 22:54:33 UTC 2026 x86_64 User : grabn6394 ( 1016) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/perl5/Archive/Cpio/ |
Upload File : |
package Archive::Cpio::FileHandle_with_pushback;
sub new {
my ($class, $F) = @_;
bless { F => $F, already_read => '' }, $class;
}
sub pushback {
my ($FHwp, $s) = @_;
$FHwp->{already_read} .= $s;
}
sub read {
my ($FHwp, $size) = @_;
$size or return;
$size =~ /^\d+$/ or die "bad size $size\n";
my $tmp = '';
if ($FHwp->{already_read}) {
$tmp = substr($FHwp->{already_read}, 0, $size);
substr($FHwp->{already_read}, 0, $size) = '';
$size -= length($tmp);
}
read($FHwp->{F}, $tmp, $size, length($tmp)) == $size or die "unexpected end of file while reading (got $tmp)\n";
$tmp;
}
sub read_ahead {
my ($FHwp, $size) = @_;
my $s = $FHwp->read($size);
$FHwp->pushback($s);
$s;
}
1;