| Server IP : 85.214.239.14 / Your IP : 216.73.216.213 Web Server : Apache/2.4.65 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/cwd/proc/self/root/proc/self/root/usr/share/perl/5.36/ExtUtils/ParseXS/ |
Upload File : |
package ExtUtils::ParseXS::CountLines;
use strict;
our $VERSION = '3.45';
our $SECTION_END_MARKER;
sub TIEHANDLE {
my ($class, $cfile, $fh) = @_;
$cfile =~ s/\\/\\\\/g;
$cfile =~ s/"/\\"/g;
$SECTION_END_MARKER = qq{#line --- "$cfile"};
return bless {
buffer => '',
fh => $fh,
line_no => 1,
}, $class;
}
sub PRINT {
my $self = shift;
for (@_) {
$self->{buffer} .= $_;
while ($self->{buffer} =~ s/^([^\n]*\n)//) {
my $line = $1;
++$self->{line_no};
$line =~ s|^\#line\s+---(?=\s)|#line $self->{line_no}|;
print {$self->{fh}} $line;
}
}
}
sub PRINTF {
my $self = shift;
my $fmt = shift;
$self->PRINT(sprintf($fmt, @_));
}
sub DESTROY {
# Not necessary if we're careful to end with a "\n"
my $self = shift;
print {$self->{fh}} $self->{buffer};
}
sub UNTIE {
# This sub does nothing, but is necessary for references to be released.
}
sub end_marker {
return $SECTION_END_MARKER;
}
1;