Initial class construction
This commit is contained in:
47
Git/usr/share/perl5/vendor_perl/URI/IRI.pm
Normal file
47
Git/usr/share/perl5/vendor_perl/URI/IRI.pm
Normal file
@ -0,0 +1,47 @@
|
||||
package URI::IRI;
|
||||
|
||||
# Experimental
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use URI ();
|
||||
|
||||
use overload '""' => sub { shift->as_string };
|
||||
|
||||
our $VERSION = '1.76';
|
||||
|
||||
sub new {
|
||||
my($class, $uri, $scheme) = @_;
|
||||
utf8::upgrade($uri);
|
||||
return bless {
|
||||
uri => URI->new($uri, $scheme),
|
||||
}, $class;
|
||||
}
|
||||
|
||||
sub clone {
|
||||
my $self = shift;
|
||||
return bless {
|
||||
uri => $self->{uri}->clone,
|
||||
}, ref($self);
|
||||
}
|
||||
|
||||
sub as_string {
|
||||
my $self = shift;
|
||||
return $self->{uri}->as_iri;
|
||||
}
|
||||
|
||||
our $AUTOLOAD;
|
||||
sub AUTOLOAD
|
||||
{
|
||||
my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::')+2);
|
||||
|
||||
# We create the function here so that it will not need to be
|
||||
# autoloaded the next time.
|
||||
no strict 'refs';
|
||||
*$method = sub { shift->{uri}->$method(@_) };
|
||||
goto &$method;
|
||||
}
|
||||
|
||||
sub DESTROY {} # avoid AUTOLOADing it
|
||||
|
||||
1;
|
Reference in New Issue
Block a user