Last change
on this file since 32787 was 27174, checked in by davidb, 11 years ago |
Perl modules from CPAN that are used in supporting activate.pl, but not part of the Perl core. Only PMs included.
|
File size:
769 bytes
|
Rev | Line | |
---|
[27174] | 1 | package URI::IRI;
|
---|
| 2 |
|
---|
| 3 | # Experimental
|
---|
| 4 |
|
---|
| 5 | use strict;
|
---|
| 6 | use URI ();
|
---|
| 7 |
|
---|
| 8 | use overload '""' => sub { shift->as_string };
|
---|
| 9 |
|
---|
| 10 | sub new {
|
---|
| 11 | my($class, $uri, $scheme) = @_;
|
---|
| 12 | utf8::upgrade($uri);
|
---|
| 13 | return bless {
|
---|
| 14 | uri => URI->new($uri, $scheme),
|
---|
| 15 | }, $class;
|
---|
| 16 | }
|
---|
| 17 |
|
---|
| 18 | sub clone {
|
---|
| 19 | my $self = shift;
|
---|
| 20 | return bless {
|
---|
| 21 | uri => $self->{uri}->clone,
|
---|
| 22 | }, ref($self);
|
---|
| 23 | }
|
---|
| 24 |
|
---|
| 25 | sub as_string {
|
---|
| 26 | my $self = shift;
|
---|
| 27 | return $self->{uri}->as_iri;
|
---|
| 28 | }
|
---|
| 29 |
|
---|
| 30 | sub AUTOLOAD
|
---|
| 31 | {
|
---|
| 32 | use vars qw($AUTOLOAD);
|
---|
| 33 | my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::')+2);
|
---|
| 34 |
|
---|
| 35 | # We create the function here so that it will not need to be
|
---|
| 36 | # autoloaded the next time.
|
---|
| 37 | no strict 'refs';
|
---|
| 38 | *$method = sub { shift->{uri}->$method(@_) };
|
---|
| 39 | goto &$method;
|
---|
| 40 | }
|
---|
| 41 |
|
---|
| 42 | sub DESTROY {} # avoid AUTOLOADing it
|
---|
| 43 |
|
---|
| 44 | 1;
|
---|
Note:
See
TracBrowser
for help on using the repository browser.