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 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
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. |
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