SILENT KILLERPanel

Current Path: > > usr > share > perl5 > URI


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //usr/share/perl5/URI

NameTypeSizeLast ModifiedActions
file Directory - -
urn Directory - -
Escape.pm File 7061 bytes January 09 2018 06:42:55.
Heuristic.pm File 6524 bytes January 09 2018 06:42:55.
IRI.pm File 820 bytes January 09 2018 06:42:55.
QueryParam.pm File 4887 bytes January 09 2018 06:42:55.
Split.pm File 2379 bytes January 09 2018 06:42:55.
URL.pm File 5487 bytes January 09 2018 06:42:55.
WithBase.pm File 3857 bytes January 09 2018 06:42:55.
_foreign.pm File 133 bytes January 09 2018 06:42:55.
_generic.pm File 5848 bytes January 09 2018 06:42:55.
_idna.pm File 2105 bytes January 09 2018 06:42:55.
_ldap.pm File 3275 bytes January 09 2018 06:42:55.
_login.pm File 257 bytes January 09 2018 06:42:55.
_punycode.pm File 5648 bytes January 09 2018 06:42:55.
_query.pm File 2557 bytes January 09 2018 06:42:55.
_segment.pm File 442 bytes January 09 2018 06:42:55.
_server.pm File 3750 bytes January 09 2018 06:42:55.
_userpass.pm File 1060 bytes January 09 2018 06:42:55.
data.pm File 3417 bytes January 09 2018 06:42:55.
file.pm File 9761 bytes January 09 2018 06:42:55.
ftp.pm File 1082 bytes January 09 2018 06:42:55.
gopher.pm File 2454 bytes January 09 2018 06:42:55.
http.pm File 451 bytes January 09 2018 06:42:55.
https.pm File 170 bytes January 09 2018 06:42:55.
ldap.pm File 2950 bytes January 09 2018 06:42:55.
ldapi.pm File 467 bytes January 09 2018 06:42:55.
ldaps.pm File 170 bytes January 09 2018 06:42:55.
mailto.pm File 1302 bytes January 09 2018 06:42:55.
mms.pm File 151 bytes January 09 2018 06:42:55.
news.pm File 1480 bytes January 09 2018 06:42:55.
nntp.pm File 153 bytes January 09 2018 06:42:55.
pop.pm File 1233 bytes January 09 2018 06:42:55.
rlogin.pm File 155 bytes January 09 2018 06:42:55.
rsync.pm File 233 bytes January 09 2018 06:42:55.
rtsp.pm File 151 bytes January 09 2018 06:42:55.
rtspu.pm File 152 bytes January 09 2018 06:42:55.
sftp.pm File 124 bytes January 09 2018 06:42:55.
sip.pm File 1735 bytes January 09 2018 06:42:55.
sips.pm File 169 bytes January 09 2018 06:42:55.
snews.pm File 198 bytes January 09 2018 06:42:55.
ssh.pm File 201 bytes January 09 2018 06:42:55.
telnet.pm File 154 bytes January 09 2018 06:42:55.
tn3270.pm File 154 bytes January 09 2018 06:42:55.
urn.pm File 2201 bytes January 09 2018 06:42:55.

Reading File: //usr/share/perl5/URI/data.pm

package URI::data;  # RFC 2397

use strict;
use warnings;

use parent 'URI';

our $VERSION = '1.73';
$VERSION = eval $VERSION;

use MIME::Base64 qw(encode_base64 decode_base64);
use URI::Escape  qw(uri_unescape);

sub media_type
{
    my $self = shift;
    my $opaque = $self->opaque;
    $opaque =~ /^([^,]*),?/ or die;
    my $old = $1;
    my $base64;
    $base64 = $1 if $old =~ s/(;base64)$//i;
    if (@_) {
	my $new = shift;
	$new = "" unless defined $new;
	$new =~ s/%/%25/g;
	$new =~ s/,/%2C/g;
	$base64 = "" unless defined $base64;
	$opaque =~ s/^[^,]*,?/$new$base64,/;
	$self->opaque($opaque);
    }
    return uri_unescape($old) if $old;  # media_type can't really be "0"
    "text/plain;charset=US-ASCII";      # default type
}

sub data
{
    my $self = shift;
    my($enc, $data) = split(",", $self->opaque, 2);
    unless (defined $data) {
	$data = "";
	$enc  = "" unless defined $enc;
    }
    my $base64 = ($enc =~ /;base64$/i);
    if (@_) {
	$enc =~ s/;base64$//i if $base64;
	my $new = shift;
	$new = "" unless defined $new;
	my $uric_count = _uric_count($new);
	my $urienc_len = $uric_count + (length($new) - $uric_count) * 3;
	my $base64_len = int((length($new)+2) / 3) * 4;
	$base64_len += 7;  # because of ";base64" marker
	if ($base64_len < $urienc_len || $_[0]) {
	    $enc .= ";base64";
	    $new = encode_base64($new, "");
	} else {
	    $new =~ s/%/%25/g;
	}
	$self->opaque("$enc,$new");
    }
    return unless defined wantarray;
    $data = uri_unescape($data);
    return $base64 ? decode_base64($data) : $data;
}

# I could not find a better way to interpolate the tr/// chars from
# a variable.
my $ENC = $URI::uric;
$ENC =~ s/%//;

eval <<EOT; die $@ if $@;
sub _uric_count
{
    \$_[0] =~ tr/$ENC//;
}
EOT

1;

__END__

=head1 NAME

URI::data - URI that contains immediate data

=head1 SYNOPSIS

 use URI;

 $u = URI->new("data:");
 $u->media_type("image/gif");
 $u->data(scalar(`cat camel.gif`));
 print "$u\n";
 open(XV, "|xv -") and print XV $u->data;

=head1 DESCRIPTION

The C<URI::data> class supports C<URI> objects belonging to the I<data>
URI scheme.  The I<data> URI scheme is specified in RFC 2397.  It
allows inclusion of small data items as "immediate" data, as if it had
been included externally.  Examples:

  data:,Perl%20is%20good

  data:image/gif;base64,R0lGODdhIAAgAIAAAAAAAPj8+CwAAAAAI
    AAgAAAClYyPqcu9AJyCjtIKc5w5xP14xgeO2tlY3nWcajmZZdeJcG
    Kxrmimms1KMTa1Wg8UROx4MNUq1HrycMjHT9b6xKxaFLM6VRKzI+p
    KS9XtXpcbdun6uWVxJXA8pNPkdkkxhxc21LZHFOgD2KMoQXa2KMWI
    JtnE2KizVUkYJVZZ1nczBxXlFopZBtoJ2diXGdNUymmJdFMAADs=



C<URI> objects belonging to the data scheme support the common methods
(described in L<URI>) and the following two scheme-specific methods:

=over 4

=item $uri->media_type( [$new_media_type] )

Can be used to get or set the media type specified in the
URI.  If no media type is specified, then the default
C<"text/plain;charset=US-ASCII"> is returned.

=item $uri->data( [$new_data] )

Can be used to get or set the data contained in the URI.
The data is passed unescaped (in binary form).  The decision about
whether to base64 encode the data in the URI is taken automatically,
based on the encoding that produces the shorter URI string.

=back

=head1 SEE ALSO

L<URI>

=head1 COPYRIGHT

Copyright 1995-1998 Gisle Aas.

This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

=cut

SILENT KILLER Tool