Commits

Bayard Bell  committed 4c6b47c

2217 Bring perl 5.14 into userland

  • Participants
  • Parent commits 742b7cb

Comments (0)

Files changed (6)

File components/perl/perl514/Makefile

+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.illumos.org/license/CDDL.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, Bayard G. Bell. All rights reserved.
+#
+include ../../../make-rules/shared-macros.mk
+
+# I want to override PERL_VERSION and PERL_ARCH because when building
+# a new version of perl it probably isn't installed so shared-macros.mk
+# can't call it.
+
+COMPONENT_NAME=		perl
+COMPONENT_VERSION=	5.14.2
+PERL_VERSION=		5.14
+COMPONENT_PROJECT_URL=	http://www.perl.org/
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
+COMPONENT_ARCHIVE_HASH=	sha1:e48d11c6fd1ee61985b475d7f261d774296a1367
+COMPONENT_ARCHIVE_URL=	http://www.cpan.org/src/5.0/$(COMPONENT_ARCHIVE)
+
+COMPILER = gcc
+GCC_ROOT = /usr/gcc/4.4
+
+PATH=$(dir $(CC)):/usr/bin:/usr/gnu/bin
+
+include $(WS_TOP)/make-rules/prep.mk
+include $(WS_TOP)/make-rules/justmake.mk
+include $(WS_TOP)/make-rules/ips.mk
+
+#
+# Override these compiler settings because they are causing problems
+# in the ON build of the contrib components.
+# ON doesn't use or need these settings or the compiler has some of them
+# on by default.
+# This also produces a perl more in line with past perl's.  For better
+# or worse.
+#
+
+$(COMPILER)_XBITS=
+$(COMPILER)_XREGS=
+$(COMPILER)_IROPTS=
+$(COMPILER)_C99MODE=
+$(COMPILER)_ALIGN=
+$(COMPILER)_MT=
+
+ifeq (gcc,$(COMPILER))
+ADDCCFLAGS +=			-Accflags="-B /usr/ccs/bin"
+LD_OPTIONS =
+COMPONENT_BUILD_ENV +=		LD_OPTIONS=$(LD_OPTIONS)
+COMPONENT_INSTALL_ENV +=	LD_OPTIONS=$(LD_OPTIONS)
+endif
+
+ifeq (studio,$(COMPILER))
+PERLCC = cc
+else
+PERLCC = $(COMPILER)
+endif
+
+#
+# The extra Configure parameters (cf_email, cf_by, myhostname) and
+# the gawk and sed that follow are attempting to sanitize the
+# resulting config.sh of values from our build environment that
+# are discoverable in perl's config via "perl -V".
+#
+
+# Using -Dmksymlinks is required to have the test suite run clean.
+CLONEY = /bin/true
+
+# That last bit re-runs bison to regenerate perly.h.
+COMPONENT_PRE_BUILD_ACTION= \
+	(cd $(@D); $(ENV) -i \
+		MAKE=$(GMAKE) \
+		PATH=$(dir $(CC)):$(PATH) \
+		$(CONFIG_SHELL) $(SOURCE_DIR)/Configure \
+			    -Dprefix=/usr/perl5/$(PERL_VERSION) \
+			    -Dprivlib=/usr/perl5/$(PERL_VERSION)/lib \
+			    -Dsitelib=/usr/perl5/site_perl/$(PERL_VERSION) \
+			    -Dvendorprefix=/usr/perl5/$(PERL_VERSION) \
+			    -Dvendorlib=/usr/perl5/vendor_perl/$(PERL_VERSION) \
+			    -Dlibperl=libperl.so.$(PERL_VERSION) \
+			    -Duseshrplib \
+			    -Dusedtrace \
+			    -Duse64bitint \
+			    -Dcc="$(PERLCC)" \
+			    -Doptimize="$(CFLAGS)" \
+			    $(ADDCCFLAGS) \
+			    -Dcf_email="userland@lists.illumos.org" \
+			    -Dcf_by="userland" \
+			    -Dmyhostname="localhost" \
+			    -Dmksymlinks \
+			    -O \
+			    -de ) ; \
+	(cd $(@D); \
+	    cp config.sh config.sh_orig ; \
+	    gawk \
+	    '/^myuname=/{print $$1" localhost "$$3" "$$5" "$$6" "$$7"\047"} ; \
+	    		!/^myuname=/ {print}' config.sh_orig \
+		| \
+		sed -e 's/[^ ]*(SUNWspro|sfw|gcc)[^ ]*//g' > config.sh ) ; \
+	( $(RM) $(@D)/perly.act $(@D)/perly.tab $(@D)/perly.h; \
+		cd $(@D) ; $(GMAKE) regen_perly )
+
+COMPONENT_INSTALL_ENV	+=	DESTDIR="$(PROTO_DIR)"
+#
+# perl's install path for sparc is based off the value of the
+# "arch" command.  So we must package that way also.
+#
+PKG_MACROS		+=	PERL_ARCH=$(shell arch)
+PKG_MACROS		+=	PERL_VERSION=$(PERL_VERSION)
+#
+# Put compilers in PATH so we can tell Configure and gmake to call the compiler
+# by its basename.  Trying to avoid the full path so it doesn't end up in
+# perl's config.
+#
+COMPONENT_BUILD_ENV	+=	PATH=$(dir $(CC)):$(PATH)
+
+build:		$(BUILD_32)
+
+install:	$(INSTALL_32)
+
+test:		$(TEST_32)
+	#
+	# If ext/Socket/t/getnameinfo.t fails on localhost resolution, check that
+	# localhost comes first in /etc/hosts. Reverse lookup of 127.0.0.1 doesn't
+	# depend on order of appearance in /etc/hosts, but getnameinfo() does.
+	#
+
+BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
+
+include $(WS_TOP)/make-rules/depend.mk

File components/perl/perl514/artistic.license

+
+
+
+
+			 The "Artistic License"
+
+				Preamble
+
+The intent of this document is to state the conditions under which a
+Package may be copied, such that the Copyright Holder maintains some
+semblance of artistic control over the development of the package,
+while giving the users of the package the right to use and distribute
+the Package in a more-or-less customary fashion, plus the right to make
+reasonable modifications.
+
+Definitions:
+
+	"Package" refers to the collection of files distributed by the
+	Copyright Holder, and derivatives of that collection of files
+	created through textual modification.
+
+	"Standard Version" refers to such a Package if it has not been
+	modified, or has been modified in accordance with the wishes
+	of the Copyright Holder as specified below.
+
+	"Copyright Holder" is whoever is named in the copyright or
+	copyrights for the package.
+
+	"You" is you, if you're thinking about copying or distributing
+	this Package.
+
+	"Reasonable copying fee" is whatever you can justify on the
+	basis of media cost, duplication charges, time of people involved,
+	and so on.  (You will not be required to justify it to the
+	Copyright Holder, but only to the computing community at large
+	as a market that must bear the fee.)
+
+	"Freely Available" means that no fee is charged for the item
+	itself, though there may be fees involved in handling the item.
+	It also means that recipients of the item may redistribute it
+	under the same conditions they received it.
+
+1. You may make and give away verbatim copies of the source form of the
+Standard Version of this Package without restriction, provided that you
+duplicate all of the original copyright notices and associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications
+derived from the Public Domain or from the Copyright Holder.  A Package
+modified in such a way shall still be considered the Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way, provided
+that you insert a prominent notice in each changed file stating how and
+when you changed that file, and provided that you do at least ONE of the
+following:
+
+    a) place your modifications in the Public Domain or otherwise make them
+    Freely Available, such as by posting said modifications to Usenet or
+    an equivalent medium, or placing the modifications on a major archive
+    site such as uunet.uu.net, or by allowing the Copyright Holder to include
+    your modifications in the Standard Version of the Package.
+
+    b) use the modified Package only within your corporation or organization.
+
+    c) rename any non-standard executables so the names do not conflict
+    with standard executables, which must also be provided, and provide
+    a separate manual page for each non-standard executable that clearly
+    documents how it differs from the Standard Version.
+
+    d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or
+executable form, provided that you do at least ONE of the following:
+
+    a) distribute a Standard Version of the executables and library files,
+    together with instructions (in the manual page or equivalent) on where
+    to get the Standard Version.
+
+    b) accompany the distribution with the machine-readable source of
+    the Package with your modifications.
+
+    c) give non-standard executables non-standard names, and clearly
+    document the differences in manual pages (or equivalent), together
+    with instructions on where to get the Standard Version.
+
+    d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of this
+Package.  You may charge any fee you choose for support of this
+Package.  You may not charge a fee for this Package itself.  However,
+you may distribute this Package in aggregate with other (possibly
+commercial) programs as part of a larger (possibly commercial) software
+distribution provided that you do not advertise this Package as a
+product of your own.  You may embed this Package's interpreter within
+an executable of yours (by linking); this shall be construed as a mere
+form of aggregation, provided that the complete Standard Version of the
+interpreter is so embedded.
+
+6. The scripts and library files supplied as input to or produced as
+output from the programs of this Package do not automatically fall
+under the copyright of this Package, but belong to whoever generated
+them, and may be sold commercially, and may be aggregated with this
+Package.  If such scripts or library files are aggregated with this
+Package via the so-called "undump" or "unexec" methods of producing a
+binary executable image, then distribution of such an image shall
+neither be construed as a distribution of this Package nor shall it
+fall under the restrictions of Paragraphs 3 and 4, provided that you do
+not represent such an executable image as a Standard Version of this
+Package.
+
+7. C subroutines (or comparably compiled subroutines in other
+languages) supplied by you and linked into this Package in order to
+emulate subroutines and variables of the language defined by this
+Package shall not be considered part of this Package, but are the
+equivalent of input as in Paragraph 6, provided these subroutines do
+not change the language in any way that would cause it to fail the
+regression tests for the language.
+
+8. Aggregation of this Package with a commercial distribution is always
+permitted provided that the use of this Package is embedded; that is,
+when no overt attempt is made to make this Package's interfaces visible
+to the end user of the commercial distribution.  Such use shall not be
+construed as a distribution of this Package.
+
+9. The name of the Copyright Holder may not be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+				The End

File components/perl/perl514/patches/CVE-2011-2939.patch

+--- perl-5.14.2/Porting/Maintainers.pl.orig	Mon Sep 26 10:44:34 2011
++++ perl-5.14.2/Porting/Maintainers.pl	Sat Mar  3 09:11:10 2012
+@@ -629,7 +629,7 @@
+     'Encode' =>
+ 	{
+ 	'MAINTAINER'	=> 'dankogai',
+-	'DISTRIBUTION'	=> 'DANKOGAI/Encode-2.42.tar.gz',
++	'DISTRIBUTION'	=> 'DANKOGAI/Encode-2.44.tar.gz',
+ 	'FILES'		=> q[cpan/Encode],
+ 	'UPSTREAM'	=> 'cpan',
+ 	},
+--- perl-5.14.2/cpan/Encode/Changes	Mon Sep 26 10:44:34 2011
++++ perl-5.14.2/cpan/Encode/Changes	Sat Mar  3 09:17:32 2012
+@@ -1,8 +1,32 @@
+ # Revision history for Perl extension Encode.
+ #
+-# $Id: Changes,v 2.42 2010/12/31 22:48:48 dankogai Exp dankogai $
++# $Id: Changes,v 2.44 2011/08/09 07:49:44 dankogai Exp dankogai $
+ #
+-$Revision: 2.42 $ $Date: 2010/12/31 22:48:48 $
++$Revision: 2.44 $ $Date: 2011/08/09 07:49:44 $
++! Unicode/Unicode.xs
++  Addressed the following:
++    Date: Fri, 22 Jul 2011 13:58:43 +0200
++    From: Robert Zacek <zacek@avast.com>
++    To: perl5-security-report@perl.org
++    Subject: Unicode.xs!decode_xs n-byte heap-overflow
++! Encode.pm encoding.pm
++! lib/Encode/Alias.pm lib/Encode/Encoder.pm lib/Encode/Guess.pm
++  Applied: RT#69735: patch for use constant DEBUG =>
++  https://rt.cpan.org/Ticket/Update.html?id=69735
++
++2.43 2011/05/21 23:14:43
++! lib/Encode/Alias.pm
++  Addressed RT#68361: Encode::Bytes x-mac-... aliases missing
++  https://rt.cpan.org/Ticket/Display.html?id=68361
++! Encode.pm
++  Applied the 0001-Fix-typo-in-pod.patch
++  https://rt.cpan.org/Ticket/Update.html?id=64381
++  Addressed RT#65796 Deep recursion error finding invalid charset
++  https://rt.cpan.org/Ticket/Update.html?id=65796
++  Applied a jumbo doc patch by Tom Christiansen
++  Message-Id: <14795.1304618434@chthon>
++
++2.42 2010/12/31 22:48:48
+ ! Encode.xs
+ ! Unicode/Unicode.xs
+   Applied: RT#64371: Update for 5.14 API changes
+diff -ur perl-5.14.2/cpan/Encode/Changes perl-5.14.2/cpan/Encode/Changes
+diff -ur perl-5.14.2/cpan/Encode/Encode.pm perl-5.14.2/cpan/Encode/Encode.pm
+--- perl-5.14.2/cpan/Encode/Encode.pm	Sat Mar  3 09:22:54 2012
++++ perl-5.14.2/cpan/Encode/Encode.pm	Sat Mar  3 09:29:34 2012
+@@ -1,10 +1,10 @@
+ #
+-# $Id: Encode.pm,v 2.42 2010/12/31 22:48:10 dankogai Exp $
++# $Id: Encode.pm,v 2.44 2011/08/09 07:49:44 dankogai Exp dankogai $
+ #
+ package Encode;
+ use strict;
+ use warnings;
+-our $VERSION = sprintf "%d.%02d_01", q$Revision: 2.42 $ =~ /(\d+)/g;
+-sub DEBUG () { 0 }
++our $VERSION = sprintf "%d.%02d", q$Revision: 2.44 $ =~ /(\d+)/g;
++use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
+ use XSLoader ();
+ XSLoader::load( __PACKAGE__, $VERSION );
+@@ -68,7 +68,7 @@
+     }
+     else {
+         %enc = %Encoding;
+-        for my $mod ( map { m/::/o ? $_ : "Encode::$_" } @_ ) {
++        for my $mod ( map { m/::/ ? $_ : "Encode::$_" } @_ ) {
+             DEBUG and warn $mod;
+             for my $enc ( keys %ExtModule ) {
+                 $ExtModule{$enc} eq $mod and $enc{$enc} = $mod;
+@@ -101,6 +101,8 @@
+ sub getEncoding {
+     my ( $class, $name, $skip_external ) = @_;
+ 
++    $name =~ s/\s+//g; # https://rt.cpan.org/Ticket/Display.html?id=65796
++
+     ref($name) && $name->can('renew') and return $name;
+     exists $Encoding{$name} and return $Encoding{$name};
+     my $lc = lc $name;
+@@ -334,8 +336,8 @@
+         $Encode::Encoding{utf8} =
+           bless { Name => "utf8" } => "Encode::utf8";
+         $Encode::Encoding{"utf-8-strict"} =
+-          bless { Name => "utf-8-strict", strict_utf8 => 1 } =>
+-          "Encode::utf8";
++          bless { Name => "utf-8-strict", strict_utf8 => 1 } 
++            => "Encode::utf8";
+     }
+ }
+ 
+@@ -345,7 +347,7 @@
+ 
+ =head1 NAME
+ 
+-Encode - character encodings
++Encode - character encodings in Perl
+ 
+ =head1 SYNOPSIS
+ 
+@@ -353,10 +355,10 @@
+ 
+ =head2 Table of Contents
+ 
+-Encode consists of a collection of modules whose details are too big
+-to fit in one document.  This POD itself explains the top-level APIs
++Encode consists of a collection of modules whose details are too extensive
++to fit in one document.  This one itself explains the top-level APIs
+ and general topics at a glance.  For other topics and more details,
+-see the PODs below:
++see the documentation for these modules:
+ 
+   Name			        Description
+   --------------------------------------------------------
+@@ -371,26 +373,26 @@
+ 
+ =head1 DESCRIPTION
+ 
+-The C<Encode> module provides the interfaces between Perl's strings
++The C<Encode> module provides the interface between Perl strings
+ and the rest of the system.  Perl strings are sequences of
+-B<characters>.
++I<characters>.
+ 
+-The repertoire of characters that Perl can represent is at least that
++The repertoire of characters that Perl can represent is a superset of those
+ defined by the Unicode Consortium. On most platforms the ordinal
+-values of the characters (as returned by C<ord(ch)>) is the "Unicode
+-codepoint" for the character (the exceptions are those platforms where
+-the legacy encoding is some variant of EBCDIC rather than a super-set
+-of ASCII - see L<perlebcdic>).
++values of a character as returned by C<ord(I<S>)> is the I<Unicode
++codepoint> for that character. The exceptions are platforms where
++the legacy encoding is some variant of EBCDIC rather than a superset
++of ASCII; see L<perlebcdic>.
+ 
+-Traditionally, computer data has been moved around in 8-bit chunks
+-often called "bytes". These chunks are also known as "octets" in
+-networking standards. Perl is widely used to manipulate data of many
+-types - not only strings of characters representing human or computer
+-languages but also "binary" data being the machine's representation of
+-numbers, pixels in an image - or just about anything.
++During recent history, data is moved around a computer in 8-bit chunks,
++often called "bytes" but also known as "octets" in standards documents.
++Perl is widely used to manipulate data of many types: not only strings of
++characters representing human or computer languages, but also "binary"
++data, being the machine's representation of numbers, pixels in an image, or
++just about anything.
+ 
+ When Perl is processing "binary data", the programmer wants Perl to
+-process "sequences of bytes". This is not a problem for Perl - as a
++process "sequences of bytes". This is not a problem for Perl: because a
+ byte has 256 possible values, it easily fits in Perl's much larger
+ "logical character".
+ 
+@@ -400,94 +402,95 @@
+ 
+ =item *
+ 
+-I<character>: a character in the range 0..(2**32-1) (or more).
+-(What Perl's strings are made of.)
++I<character>: a character in the range 0 .. 2**32-1 (or more);
++what Perl's strings are made of.
+ 
+ =item *
+ 
+-I<byte>: a character in the range 0..255
+-(A special case of a Perl character.)
++I<byte>: a character in the range 0..255;
++A special case of a Perl character.
+ 
+ =item *
+ 
+-I<octet>: 8 bits of data, with ordinal values 0..255
+-(Term for bytes passed to or from a non-Perl context, e.g. a disk file.)
++I<octet>: 8 bits of data, with ordinal values 0..255;
++Term for bytes passed to or from a non-Perl context, such as a disk file.
+ 
+ =back
+ 
+-=head1 PERL ENCODING API
++=head1 THE PERL ENCODING API
+ 
+ =over 2
+ 
+-=item $octets  = encode(ENCODING, $string [, CHECK])
++=item $octets  = encode(ENCODING, STRING[, CHECK])
+ 
+-Encodes a string from Perl's internal form into I<ENCODING> and returns
+-a sequence of octets.  ENCODING can be either a canonical name or
+-an alias.  For encoding names and aliases, see L</"Defining Aliases">.
+-For CHECK, see L</"Handling Malformed Data">.
++Encodes the scalar value I<STRING> from Perl's internal form into
++I<ENCODING> and returns a sequence of octets.  I<ENCODING> can be either a
++canonical name or an alias.  For encoding names and aliases, see
++L</"Defining Aliases">.  For CHECK, see L</"Handling Malformed Data">.
+ 
+-For example, to convert a string from Perl's internal format to
+-iso-8859-1 (also known as Latin1),
++For example, to convert a string from Perl's internal format into
++ISO-8859-1, also known as Latin1:
+ 
+   $octets = encode("iso-8859-1", $string);
+ 
+ B<CAVEAT>: When you run C<$octets = encode("utf8", $string)>, then
+-$octets B<may not be equal to> $string.  Though they both contain the
+-same data, the UTF8 flag for $octets is B<always> off.  When you
+-encode anything, UTF8 flag of the result is always off, even when it
+-contains completely valid utf8 string. See L</"The UTF8 flag"> below.
++$octets I<might not be equal to> $string.  Though both contain the
++same data, the UTF8 flag for $octets is I<always> off.  When you
++encode anything, the UTF8 flag on the result is always off, even when it
++contains a completely valid utf8 string. See L</"The UTF8 flag"> below.
+ 
+-If the $string is C<undef> then C<undef> is returned.
++If the $string is C<undef>, then C<undef> is returned.
+ 
+-=item $string = decode(ENCODING, $octets [, CHECK])
++=item $string = decode(ENCODING, OCTETS[, CHECK])
+ 
+-Decodes a sequence of octets assumed to be in I<ENCODING> into Perl's
+-internal form and returns the resulting string.  As in encode(),
+-ENCODING can be either a canonical name or an alias. For encoding names
+-and aliases, see L</"Defining Aliases">.  For CHECK, see
+-L</"Handling Malformed Data">.
++This function returns the string that results from decoding the scalar
++value I<OCTETS>, assumed to be a sequence of octets in I<ENCODING>, into
++Perl's internal form.  The returns the resulting string.  As with encode(),
++I<ENCODING> can be either a canonical name or an alias. For encoding names
++and aliases, see L</"Defining Aliases">; for I<CHECK>, see L</"Handling
++Malformed Data">.
+ 
+-For example, to convert ISO-8859-1 data to a string in Perl's internal format:
++For example, to convert ISO-8859-1 data into a string in Perl's
++internal format:
+ 
+   $string = decode("iso-8859-1", $octets);
+ 
+ B<CAVEAT>: When you run C<$string = decode("utf8", $octets)>, then $string
+-B<may not be equal to> $octets.  Though they both contain the same data,
+-the UTF8 flag for $string is on unless $octets entirely consists of
+-ASCII data (or EBCDIC on EBCDIC machines).  See L</"The UTF8 flag">
++I<might not be equal to> $octets.  Though both contain the same data, the
++UTF8 flag for $string is on unless $octets consists entirely of ASCII data
++on ASCII machines or EBCDIC on EBCDIC machines.  See L</"The UTF8 flag">
+ below.
+ 
+-If the $string is C<undef> then C<undef> is returned.
++If the $string is C<undef>, then C<undef> is returned.
+ 
+ =item [$obj =] find_encoding(ENCODING)
+ 
+-Returns the I<encoding object> corresponding to ENCODING.  Returns
+-undef if no matching ENCODING is find.
++Returns the I<encoding object> corresponding to I<ENCODING>.  Returns
++C<undef> if no matching I<ENCODING> is find.  The returned object is
++what does the actual encoding or decoding.
+ 
+-This object is what actually does the actual (en|de)coding.
+-
+   $utf8 = decode($name, $bytes);
+ 
+ is in fact
+ 
+-  $utf8 = do{
+-    $obj = find_encoding($name);
+-    croak qq(encoding "$name" not found) unless ref $obj;
+-    $obj->decode($bytes)
+-  };
++    $utf8 = do {
++        $obj = find_encoding($name);
++        croak qq(encoding "$name" not found) unless ref $obj;
++        $obj->decode($bytes);
++    };
+ 
+ with more error checking.
+ 
+-Therefore you can save time by reusing this object as follows;
++You can therefore save time by reusing this object as follows;
+ 
+-  my $enc = find_encoding("iso-8859-1");
+-  while(<>){
+-     my $utf8 = $enc->decode($_);
+-     # and do someting with $utf8;
+-  }
++    my $enc = find_encoding("iso-8859-1");
++    while(<>) {
++        my $utf8 = $enc->decode($_);
++        ... # now do something with $utf8;
++    }
+ 
+ Besides C<< ->decode >> and C<< ->encode >>, other methods are
+-available as well.  For instance, C<< -> name >> returns the canonical
++available as well.  For instance, C<< ->name >> returns the canonical
+ name of the encoding object.
+ 
+   find_encoding("latin1")->name; # iso-8859-1
+@@ -496,9 +499,9 @@
+ 
+ =item [$length =] from_to($octets, FROM_ENC, TO_ENC [, CHECK])
+ 
+-Converts B<in-place> data between two encodings. The data in $octets
+-must be encoded as octets and not as characters in Perl's internal
+-format. For example, to convert ISO-8859-1 data to Microsoft's CP1250
++Converts I<in-place> data between two encodings. The data in $octets
++must be encoded as octets and I<not> as characters in Perl's internal
++format. For example, to convert ISO-8859-1 data into Microsoft's CP1250
+ encoding:
+ 
+   from_to($octets, "iso-8859-1", "cp1250");
+@@ -507,54 +510,53 @@
+ 
+   from_to($octets, "cp1250", "iso-8859-1");
+ 
+-Note that because the conversion happens in place, the data to be
+-converted cannot be a string constant; it must be a scalar variable.
++Because the conversion happens in place, the data to be
++converted cannot be a string constant: it must be a scalar variable.
+ 
+-from_to() returns the length of the converted string in octets on
+-success, I<undef> on error.
++from_to() returns the length of the converted string in octets on success,
++and C<undef> on error.
+ 
+-B<CAVEAT>: The following operations look the same but are not quite so;
++B<CAVEAT>: The following operations may look the same, but are not:
+ 
+   from_to($data, "iso-8859-1", "utf8"); #1
+   $data = decode("iso-8859-1", $data);  #2
+ 
+-Both #1 and #2 make $data consist of a completely valid UTF-8 string
+-but only #2 turns UTF8 flag on.  #1 is equivalent to
++Both #1 and #2 make $data consist of a completely valid UTF-8 string,
++but only #2 turns the UTF8 flag on.  #1 is equivalent to:
+ 
+   $data = encode("utf8", decode("iso-8859-1", $data));
+ 
+ See L</"The UTF8 flag"> below.
+ 
+-Also note that
++Also note that:
+ 
+   from_to($octets, $from, $to, $check);
+ 
+-is equivalent to
++is equivalent t:o
+ 
+   $octets = encode($to, decode($from, $octets), $check);
+ 
+-Yes, it does not respect the $check during decoding.  It is
+-deliberately done that way.  If you need minute control, C<decode>
+-then C<encode> as follows;
++Yes, it does I<not> respect the $check during decoding.  It is
++deliberately done that way.  If you need minute control, use C<decode>
++followed by C<encode> as follows:
+ 
+   $octets = encode($to, decode($from, $octets, $check_from), $check_to);
+ 
+ =item $octets = encode_utf8($string);
+ 
+-Equivalent to C<$octets = encode("utf8", $string);> The characters
+-that comprise $string are encoded in Perl's internal format and the
+-result is returned as a sequence of octets. All possible
+-characters have a UTF-8 representation so this function cannot fail.
++Equivalent to C<$octets = encode("utf8", $string)>.  The characters in
++$string are encoded in Perl's internal format, and the result is returned
++as a sequence of octets.  Because all possible characters in Perl have a
++(loose, not strict) UTF-8 representation, this function cannot fail.
+ 
+-
+ =item $string = decode_utf8($octets [, CHECK]);
+ 
+-equivalent to C<$string = decode("utf8", $octets [, CHECK])>.
+-The sequence of octets represented by
+-$octets is decoded from UTF-8 into a sequence of logical
+-characters. Not all sequences of octets form valid UTF-8 encodings, so
+-it is possible for this call to fail.  For CHECK, see
+-L</"Handling Malformed Data">.
++Equivalent to C<$string = decode("utf8", $octets [, CHECK])>.
++The sequence of octets represented by $octets is decoded
++from UTF-8 into a sequence of logical characters.
++Because not all sequences of octets are valid UTF-8,
++it is quite possible for this function to fail.
++For CHECK, see L</"Handling Malformed Data">.
+ 
+ =back
+ 
+@@ -563,17 +565,17 @@
+   use Encode;
+   @list = Encode->encodings();
+ 
+-Returns a list of the canonical names of the available encodings that
+-are loaded.  To get a list of all available encodings including the
+-ones that are not loaded yet, say
++Returns a list of canonical names of available encodings that have already
++been loaded.  To get a list of all available encodings including those that
++have not yet been loaded, say:
+ 
+   @all_encodings = Encode->encodings(":all");
+ 
+-Or you can give the name of a specific module.
++Or you can give the name of a specific module:
+ 
+   @with_jp = Encode->encodings("Encode::JP");
+ 
+-When "::" is not in the name, "Encode::" is assumed.
++When "C<::>" is not in the name, "C<Encode::>" is assumed.
+ 
+   @ebcdic = Encode->encodings("EBCDIC");
+ 
+@@ -586,15 +588,15 @@
+ 
+   use Encode;
+   use Encode::Alias;
+-  define_alias(newName => ENCODING);
++  define_alias(NEWNAME => ENCODING);
+ 
+-After that, newName can be used as an alias for ENCODING.
+-ENCODING may be either the name of an encoding or an
+-I<encoding object>
++After that, I<NEWNAME> can be used as an alias for I<ENCODING>.
++<ENCODING> may be either the name of an encoding or an
++I<encoding object>.
+ 
+-But before you do so, make sure the alias is nonexistent with
++Before you do that, first make sure the alias is nonexistent using
+ C<resolve_alias()>, which returns the canonical name thereof.
+-i.e.
++For example:
+ 
+   Encode::resolve_alias("latin1") eq "iso-8859-1" # true
+   Encode::resolve_alias("iso-8859-12")   # false; nonexistent
+@@ -601,7 +603,7 @@
+   Encode::resolve_alias($name) eq $name  # true if $name is canonical
+ 
+ resolve_alias() does not need C<use Encode::Alias>; it can be
+-exported via C<use Encode qw(resolve_alias)>.
++imported via C<use Encode qw(resolve_alias)>.
+ 
+ See L<Encode::Alias> for details.
+ 
+@@ -608,14 +610,14 @@
+ =head2 Finding IANA Character Set Registry names
+ 
+ The canonical name of a given encoding does not necessarily agree with
+-IANA IANA Character Set Registry, commonly seen as C<< Content-Type:
+-text/plain; charset=I<whatever> >>.  For most cases canonical names
+-work but sometimes it does not (notably 'utf-8-strict').
++IANA Character Set Registry, commonly seen as C<< Content-Type:
++text/plain; charset=I<WHATEVER> >>.  For most cases, the canonical name
++works, but sometimes it does not, most notably with "utf-8-strict".
+ 
+-Therefore as of Encode version 2.21, a new method C<mime_name()> is added.
++As of C<Encode> version 2.21, a new method C<mime_name()> is thereforeadded.
+ 
+   use Encode;
+-  my $enc = find_encoding('UTF-8');
++  my $enc = find_encoding("UTF-8");
+   warn $enc->name;      # utf-8-strict
+   warn $enc->mime_name; # UTF-8
+ 
+@@ -623,44 +625,60 @@
+ 
+ =head1 Encoding via PerlIO
+ 
+-If your perl supports I<PerlIO> (which is the default), you can use a
+-PerlIO layer to decode and encode directly via a filehandle.  The
+-following two examples are totally identical in their functionality.
++If your perl supports C<PerlIO> (which is the default), you can use a
++C<PerlIO> layer to decode and encode directly via a filehandle.  The
++following two examples are fully identical in functionality:
+ 
+-  # via PerlIO
+-  open my $in,  "<:encoding(shiftjis)", $infile  or die;
+-  open my $out, ">:encoding(euc-jp)",   $outfile or die;
+-  while(<$in>){ print $out $_; }
++  ### Version 1 via PerlIO
++    open(INPUT,  "< :encoding(shiftjis)", $infile)
++        || die "Can't open < $infile for reading: $!";
++    open(OUTPUT, "> :encoding(euc-jp)",  $outfile)
++        || die "Can't open > $output for writing: $!";
++    while (<INPUT>) {   # auto decodes $_
++        print OUTPUT;   # auto encodes $_
++    }
++    close(INPUT)   || die "can't close $infile: $!";
++    close(OUTPUT)  || die "can't close $outfile: $!";
+ 
+-  # via from_to
+-  open my $in,  "<", $infile  or die;
+-  open my $out, ">", $outfile or die;
+-  while(<$in>){
+-    from_to($_, "shiftjis", "euc-jp", 1);
+-    print $out $_;
+-  }
++  ### Version 2 via from_to()
++    open(INPUT,  "< :raw", $infile)
++        || die "Can't open < $infile for reading: $!";
++    open(OUTPUT, "> :raw",  $outfile)
++        || die "Can't open > $output for writing: $!";
+ 
+-Unfortunately, it may be that encodings are PerlIO-savvy.  You can check
+-if your encoding is supported by PerlIO by calling the C<perlio_ok>
+-method.
++    while (<INPUT>) {
++        from_to($_, "shiftjis", "euc-jp", 1);  # switch encoding
++        print OUTPUT;   # emit raw (but properly encoded) data
++    }
++    close(INPUT)   || die "can't close $infile: $!";
++    close(OUTPUT)  || die "can't close $outfile: $!";
+ 
+-  Encode::perlio_ok("hz");             # False
+-  find_encoding("euc-cn")->perlio_ok;  # True where PerlIO is available
++In the first version above, you let the appropriate encoding layer
++handle the conversion.  In the second, you explicitly translate
++from one encoding to the other.
+ 
+-  use Encode qw(perlio_ok);            # exported upon request
++Unfortunately, it may be that encodings are C<PerlIO>-savvy.  You can check
++to see whether your encoding is supported by C<PerlIO> by invoking the
++C<perlio_ok> method on it:
++
++  Encode::perlio_ok("hz");             # false
++  find_encoding("euc-cn")->perlio_ok;  # true wherever PerlIO is available
++
++  use Encode qw(perlio_ok);            # imported upon request
+   perlio_ok("euc-jp")
+ 
+-Fortunately, all encodings that come with Encode core are PerlIO-savvy
+-except for hz and ISO-2022-kr.  For gory details, see
++Fortunately, all encodings that come with C<Encode> core are C<PerlIO>-savvy
++except for "hz" and "ISO-2022-kr".  For the gory details, see
+ L<Encode::Encoding> and L<Encode::PerlIO>.
+ 
+ =head1 Handling Malformed Data
+ 
+-The optional I<CHECK> argument tells Encode what to do when it
+-encounters malformed data.  Without CHECK, Encode::FB_DEFAULT ( == 0 )
+-is assumed.
++The optional I<CHECK> argument tells C<Encode> what to do when
++encountering malformed data.  Without I<CHECK>, C<Encode::FB_DEFAULT>
++(== 0) is assumed.
+ 
+-As of version 2.12 Encode supports coderef values for CHECK.  See below.
++As of version 2.12, C<Encode> supports coderef values for C<CHECK>;
++see below.
+ 
+ =over 2
+ 
+@@ -677,39 +695,39 @@
+ 
+ =item I<CHECK> = Encode::FB_DEFAULT ( == 0)
+ 
+-If I<CHECK> is 0, (en|de)code will put a I<substitution character> in
+-place of a malformed character.  When you encode, E<lt>subcharE<gt>
+-will be used.  When you decode the code point C<0xFFFD> is used.  If
+-the data is supposed to be UTF-8, an optional lexical warning
+-(category utf8) is given.
++If I<CHECK> is 0, encoding and decoding replace any malformed character
++with a I<substitution character>.  When you encode, I<SUBCHAR> is used.
++When you decode, the Unicode REPLACEMENT CHARACTER, code point U+FFFD, is
++used.  If the data is supposed to be UTF-8, an optional lexical warning of
++warning category C<"utf8"> is given.
+ 
+ =item I<CHECK> = Encode::FB_CROAK ( == 1)
+ 
+-If I<CHECK> is 1, methods will die on error immediately with an error
+-message.  Therefore, when I<CHECK> is set to 1,  you should trap the
+-error with eval{} unless you really want to let it die.
++If I<CHECK> is 1, methods immediately die with an error
++message.  Therefore, when I<CHECK> is 1, you should trap
++exceptions with C<eval{}>, unless you really want to let it C<die>.
+ 
+ =item I<CHECK> = Encode::FB_QUIET
+ 
+-If I<CHECK> is set to Encode::FB_QUIET, (en|de)code will immediately
++If I<CHECK> is set to C<Encode::FB_QUIET>, encoding and decoding immediately
+ return the portion of the data that has been processed so far when an
+-error occurs. The data argument will be overwritten with everything
+-after that point (that is, the unprocessed part of data).  This is
+-handy when you have to call decode repeatedly in the case where your
++error occurs. The data argument is overwritten with everything
++after that point; that is, the unprocessed portion of the data.  This is
++handy when you have to call C<decode> repeatedly in the case where your
+ source data may contain partial multi-byte character sequences,
+-(i.e. you are reading with a fixed-width buffer). Here is a sample
+-code that does exactly this:
++(that is, you are reading with a fixed-width buffer). Here's some sample
++code to do exactly that:
+ 
+-  my $buffer = ''; my $string = '';
+-  while(read $fh, $buffer, 256, length($buffer)){
+-    $string .= decode($encoding, $buffer, Encode::FB_QUIET);
+-    # $buffer now contains the unprocessed partial character
+-  }
++    my($buffer, $string) = ("", "");
++    while (read($fh, $buffer, 256, length($buffer))) {
++        $string .= decode($encoding, $buffer, Encode::FB_QUIET);
++        # $buffer now contains the unprocessed partial character
++    }
+ 
+ =item I<CHECK> = Encode::FB_WARN
+ 
+-This is the same as above, except that it warns on error.  Handy when
+-you are debugging the mode above.
++This is the same as C<FB_QUIET> above, except that instead of being silent
++on errors, it issues a warning.  This is handy for when you are debugging.
+ 
+ =item perlqq mode (I<CHECK> = Encode::FB_PERLQQ)
+ 
+@@ -717,26 +735,26 @@
+ 
+ =item XML charref mode (I<CHECK> = Encode::FB_XMLCREF)
+ 
+-For encodings that are implemented by Encode::XS, CHECK ==
+-Encode::FB_PERLQQ turns (en|de)code into C<perlqq> fallback mode.
++For encodings that are implemented by the C<Encode::XS> module, C<CHECK> C<==>
++C<Encode::FB_PERLQQ> puts C<encode> and C<decode> into C<perlqq> fallback mode.
+ 
+-When you decode, C<\xI<HH>> will be inserted for a malformed character,
+-where I<HH> is the hex representation of the octet  that could not be
+-decoded to utf8.  And when you encode, C<\x{I<HHHH>}> will be inserted,
+-where I<HHHH> is the Unicode ID of the character that cannot be found
+-in the character repertoire of the encoding.
++When you decode, C<\xI<HH>> is inserted for a malformed character, where
++I<HH> is the hex representation of the octet that could not be decoded to
++utf8.  When you encode, C<\x{I<HHHH>}> will be inserted, where I<HHHH> is
++the Unicode code point (in any number of hex digits) of the character that
++cannot be found in the character repertoire of the encoding.
+ 
+-HTML/XML character reference modes are about the same, in place of
+-C<\x{I<HHHH>}>, HTML uses C<&#I<NNN>;> where I<NNN> is a decimal number and
++The HTML/XML character reference modes are about the same. In place of
++C<\x{I<HHHH>}>, HTML uses C<&#I<NNN>;> where I<NNN> is a decimal number, and
+ XML uses C<&#xI<HHHH>;> where I<HHHH> is the hexadecimal number.
+ 
+-In Encode 2.10 or later, C<LEAVE_SRC> is also implied.
++In C<Encode> 2.10 or later, C<LEAVE_SRC> is also implied.
+ 
+ =item The bitmask
+ 
+-These modes are actually set via a bitmask.  Here is how the FB_XX
+-constants are laid out.  You can import the FB_XX constants via
+-C<use Encode qw(:fallbacks)>; you can import the generic bitmask
++These modes are all actually set via a bitmask.  Here is how the C<FB_I<XXX>>
++constants are laid out.  You can import the C<FB_I<XXX>> constants via
++C<use Encode qw(:fallbacks)>, and you can import the generic bitmask
+ constants via C<use Encode qw(:fallback_all)>.
+ 
+                      FB_DEFAULT FB_CROAK FB_QUIET FB_WARN  FB_PERLQQ
+@@ -754,22 +772,21 @@
+ 
+ =item Encode::LEAVE_SRC
+ 
+-If the C<Encode::LEAVE_SRC> bit is not set, but I<CHECK> is, then the second
+-argument to C<encode()> or C<decode()> may be assigned to by the functions. If
+-you're not interested in this, then bitwise-or the bitmask with it.
++If the C<Encode::LEAVE_SRC> bit is I<not> set but I<CHECK> is set, then the
++second argument to encode() or decode() will be overwritten in place.
++If you're not interested in this, then bitwise-OR it with the bitmask.
+ 
+ =back
+ 
+ =head2 coderef for CHECK
+ 
+-As of Encode 2.12 CHECK can also be a code reference which takes the
+-ord value of unmapped caharacter as an argument and returns a string
+-that represents the fallback character.  For instance,
++As of C<Encode> 2.12, C<CHECK> can also be a code reference which takes the
++ordinal value of the unmapped caharacter as an argument and returns a string
++that represents the fallback character.  For instance:
+ 
+   $ascii = encode("ascii", $utf8, sub{ sprintf "<U+%04X>", shift });
+ 
+-Acts like FB_PERLQQ but E<lt>U+I<XXXX>E<gt> is used instead of
+-\x{I<XXXX>}.
++Acts like C<FB_PERLQQ> but U+I<XXXX> is used instead of C<\x{I<XXXX>}>.
+ 
+ =head1 Defining Encodings
+ 
+@@ -776,22 +793,22 @@
+ To define a new encoding, use:
+ 
+     use Encode qw(define_encoding);
+-    define_encoding($object, 'canonicalName' [, alias...]);
++    define_encoding($object, CANONICAL_NAME [, alias...]);
+ 
+-I<canonicalName> will be associated with I<$object>.  The object
++I<CANONICAL_NAME> will be associated with I<$object>.  The object
+ should provide the interface described in L<Encode::Encoding>.
+-If more than two arguments are provided then additional
+-arguments are taken as aliases for I<$object>.
++If more than two arguments are provided, additional
++arguments are considered aliases for I<$object>.
+ 
+-See L<Encode::Encoding> for more details.
++See L<Encode::Encoding> for details.
+ 
+ =head1 The UTF8 flag
+ 
+-Before the introduction of Unicode support in perl, The C<eq> operator
++Before the introduction of Unicode support in Perl, The C<eq> operator
+ just compared the strings represented by two scalars. Beginning with
+-perl 5.8, C<eq> compares two strings with simultaneous consideration of
+-I<the UTF8 flag>. To explain why we made it so, I will quote page 402 of
+-C<Programming Perl, 3rd ed.>
++Perl 5.8, C<eq> compares two strings with simultaneous consideration of
++I<the UTF8 flag>. To explain why we made it so, I quote from page 402 of
++I<Programming Perl, 3rd ed.>
+ 
+ =over 2
+ 
+@@ -817,29 +834,28 @@
+ 
+ =back
+ 
+-Back when C<Programming Perl, 3rd ed.> was written, not even Perl 5.6.0
+-was born and many features documented in the book remained
+-unimplemented for a long time.  Perl 5.8 corrected this and the introduction
+-of the UTF8 flag is one of them.  You can think of this perl notion as of a
+-byte-oriented mode (UTF8 flag off) and a character-oriented mode (UTF8
+-flag on).
++When I<Programming Perl, 3rd ed.> was written, not even Perl 5.6.0 had been
++born yet, many features documented in the book remained unimplemented for a
++long time.  Perl 5.8 corrected much of this, and the introduction of the
++UTF8 flag is one of them.  You can think of there being two fundamentally
++different kinds of strings and string-operations in Perl: one a
++byte-oriented mode  for when the internal UTF8 flag is off, and the other a
++character-oriented mode for when the internal UTF8 flag is on.
+ 
+-Here is how Encode takes care of the UTF8 flag.
++Here is how C<Encode> handles the UTF8 flag.
+ 
+ =over 2
+ 
+ =item *
+ 
+-When you encode, the resulting UTF8 flag is always off.
++When you I<encode>, the resulting UTF8 flag is always B<off>.
+ 
+ =item *
+ 
+-When you decode, the resulting UTF8 flag is on unless you can
+-unambiguously represent data.  Here is the definition of
+-dis-ambiguity.
++When you I<decode>, the resulting UTF8 flag is B<on>--I<unless> you can
++unambiguously represent data.  Here is what we mean by "unambiguously".
++After C<$utf8 = decode("foo", $octet)>,
+ 
+-After C<$utf8 = decode('foo', $octet);>,
+-
+   When $octet is...   The UTF8 flag in $utf8 is
+   ---------------------------------------------
+   In ASCII only (or EBCDIC only)            OFF
+@@ -847,14 +863,14 @@
+   In any other Encoding                      ON
+   ---------------------------------------------
+ 
+-As you see, there is one exception, In ASCII.  That way you can assume
+-Goal #1.  And with Encode Goal #2 is assumed but you still have to be
+-careful in such cases mentioned in B<CAVEAT> paragraphs.
++As you see, there is one exception: in ASCII.  That way you can assume
++Goal #1.  And with C<Encode>, Goal #2 is assumed but you still have to be
++careful in the cases mentioned in the B<CAVEAT> paragraphs above.
+ 
+-This UTF8 flag is not visible in perl scripts, exactly for the same
+-reason you cannot (or you I<don't have to>) see if a scalar contains a
+-string, integer, or floating point number.   But you can still peek
+-and poke these if you will.  See the section below.
++This UTF8 flag is not visible in Perl scripts, exactly for the same reason
++you cannot (or rather, you I<don't have to>) see whether a scalar contains
++a string, an integer, or a floating-point number.   But you can still peek
++and poke these if you will.  See the next section.
+ 
+ =back
+ 
+@@ -861,36 +877,39 @@
+ =head2 Messing with Perl's Internals
+ 
+ The following API uses parts of Perl's internals in the current
+-implementation.  As such, they are efficient but may change.
++implementation.  As such, they are efficient but may change in a future
++release.
+ 
+ =over 2
+ 
+ =item is_utf8(STRING [, CHECK])
+ 
+-[INTERNAL] Tests whether the UTF8 flag is turned on in the STRING.
+-If CHECK is true, also checks the data in STRING for being well-formed
++[INTERNAL] Tests whether the UTF8 flag is turned on in the I<STRING>.
++If I<CHECK> is true, also checks whether I<STRING> contains well-formed
+ UTF-8.  Returns true if successful, false otherwise.
+ 
+-As of perl 5.8.1, L<utf8> also has utf8::is_utf8().
++As of Perl 5.8.1, L<utf8> also has the C<utf8::is_utf8> function.
+ 
+ =item _utf8_on(STRING)
+ 
+-[INTERNAL] Turns on the UTF8 flag in STRING.  The data in STRING is
+-B<not> checked for being well-formed UTF-8.  Do not use unless you
+-B<know> that the STRING is well-formed UTF-8.  Returns the previous
+-state of the UTF8 flag (so please don't treat the return value as
+-indicating success or failure), or C<undef> if STRING is not a string.
++[INTERNAL] Turns the I<STRING>'s internal UTF8 flag B<on>.  The I<STRING>
++is I<not> checked for containing only well-formed UTF-8.  Do not use this
++unless you I<know with absolute certainty> that the STRING holds only
++well-formed UTF-8.  Returns the previous state of the UTF8 flag (so please
++don't treat the return value as indicating success or failure), or C<undef>
++if I<STRING> is not a string.
+ 
+-This function does not work on tainted values.
++B<NOTE>: For security reasons, this function does not work on tainted values.
+ 
+ =item _utf8_off(STRING)
+ 
+-[INTERNAL] Turns off the UTF8 flag in STRING.  Do not use frivolously.
+-Returns the previous state of the UTF8 flag (so please don't treat the
+-return value as indicating success or failure), or C<undef> if STRING is
+-not a string.
++[INTERNAL] Turns the I<STRING>'s internal UTF8 flag B<off>.  Do not use
++frivolously.  Returns the previous state of the UTF8 flag, or C<undef> if
++I<STRING> is not a string.  Do not treat the return value as indicative of
++success or failure, because that isn't what it means: it is only the
++previous setting.
+ 
+-This function does not work on tainted values.
++B<NOTE>: For security reasons, this function does not work on tainted values.
+ 
+ =back
+ 
+@@ -900,11 +919,17 @@
+   of numbers in the range 0 .. 2**32-1 (or in the case of 64-bit
+   computers, 0 .. 2**64-1) -- Programming Perl, 3rd ed.
+ 
+-That has been the perl's notion of UTF-8 but official UTF-8 is more
+-strict; Its ranges is much narrower (0 .. 10FFFF), some sequences are
+-not allowed (i.e. Those used in the surrogate pair, 0xFFFE, et al).
++That has historically been Perl's notion of UTF-8, as that is how UTF-8 was
++first conceived by Ken Thompson when he invented it. However, thanks to
++later revisions to the applicable standards, official UTF-8 is now rather
++stricter than that. For example, its range is much narrower (0 .. 0x10_FFFF
++to cover only 21 bits instead of 32 or 64 bits) and some sequences
++are not allowed, like those used in surrogate pairs, the 31 non-character
++code points 0xFDD0 .. 0xFDEF, the last two code points in I<any> plane
++(0xI<XX>_FFFE and 0xI<XX>_FFFF), all non-shortest encodings, etc.
+ 
+-Now that is overruled by Larry Wall himself.
++The former default in which Perl would always use a loose interpretation of
++UTF-8 has now been overruled:
+ 
+   From: Larry Wall <larry@wall.org>
+   Date: December 04, 2004 11:51:58 JST
+@@ -911,38 +936,40 @@
+   To: perl-unicode@perl.org
+   Subject: Re: Make Encode.pm support the real UTF-8
+   Message-Id: <20041204025158.GA28754@wall.org>
+-  
++
+   On Fri, Dec 03, 2004 at 10:12:12PM +0000, Tim Bunce wrote:
+   : I've no problem with 'utf8' being perl's unrestricted uft8 encoding,
+   : but "UTF-8" is the name of the standard and should give the
+   : corresponding behaviour.
+-  
++
+   For what it's worth, that's how I've always kept them straight in my
+   head.
+-  
++
+   Also for what it's worth, Perl 6 will mostly default to strict but
+   make it easy to switch back to lax.
+-  
++
+   Larry
+ 
+-Do you copy?  As of Perl 5.8.7, B<UTF-8> means strict, official UTF-8
+-while B<utf8> means liberal, lax, version thereof.  And Encode version
+-2.10 or later thus groks the difference between C<UTF-8> and C"utf8".
++Got that?  As of Perl 5.8.7, B<"UTF-8"> means UTF-8 in its current
++sense, which is conservative and strict and security-conscious, whereas
++B<"utf8"> means UTF-8 in its former sense, which was liberal and loose and
++lax.  C<Encode> version 2.10 or later thus groks this subtle but critically
++important distinction between C<"UTF-8"> and C<"utf8">.
+ 
+   encode("utf8",  "\x{FFFF_FFFF}", 1); # okay
+   encode("UTF-8", "\x{FFFF_FFFF}", 1); # croaks
+ 
+-C<UTF-8> in Encode is actually a canonical name for C<utf-8-strict>.
+-Yes, the hyphen between "UTF" and "8" is important.  Without it Encode
+-goes "liberal"
++In the C<Encode> module, C<"UTF-8"> is actually a canonical name for
++C<"utf-8-strict">.  That hyphen between the C<"UTF"> and the C<"8"> is
++critical; without it, C<Encode> goes "liberal" and (perhaps overly-)permissive:
+ 
+   find_encoding("UTF-8")->name # is 'utf-8-strict'
+   find_encoding("utf-8")->name # ditto. names are case insensitive
+-  find_encoding("utf_8")->name  # ditto. "_" are treated as "-"
++  find_encoding("utf_8")->name # ditto. "_" are treated as "-"
+   find_encoding("UTF8")->name  # is 'utf8'.
+ 
+-The UTF8 flag is internally called UTF8, without a hyphen. It indicates
+-whether a string is internally encoded as utf8, also without a hypen.
++Perl's internal UTF8 flag is called "UTF8", without a hyphen. It indicates
++whether a string is internally encoded as "utf8", also without a hyphen.
+ 
+ =head1 SEE ALSO
+ 
+@@ -958,18 +985,18 @@
+ 
+ =head1 MAINTAINER
+ 
+-This project was originated by Nick Ing-Simmons and later maintained
+-by Dan Kogai E<lt>dankogai@dan.co.jpE<gt>.  See AUTHORS for a full
+-list of people involved.  For any questions, use
+-E<lt>perl-unicode@perl.orgE<gt> so we can all share.
++This project was originated by the late Nick Ing-Simmons and later
++maintained by Dan Kogai I<< <dankogai@dan.co.jp> >>.  See AUTHORS
++for a full list of people involved.  For any questions, send mail to
++I<< <perl-unicode@perl.org> >> so that we can all share.
+ 
+-While Dan Kogai retains the copyright as a maintainer, the credit
+-should go to all those involoved.  See AUTHORS for those submitted
+-codes.
++While Dan Kogai retains the copyright as a maintainer, credit
++should go to all those involved.  See AUTHORS for a list of those
++who submitted code to the project.
+ 
+ =head1 COPYRIGHT
+ 
+-Copyright 2002-2006 Dan Kogai E<lt>dankogai@dan.co.jpE<gt>
++Copyright 2002-2011 Dan Kogai I<< <dankogai@dan.co.jp> >>.
+ 
+ This library is free software; you can redistribute it and/or modify
+ it under the same terms as Perl itself.
+diff -ur perl-5.14.2/cpan/Encode/Encode.xs perl-5.14.2/cpan/Encode/Encode.xs
+--- perl-5.14.2/cpan/Encode/Encode.xs	Mon Sep 26 10:44:34 2011
++++ perl-5.14.2/cpan/Encode/Encode.xs	Sat Mar  3 09:29:34 2012
+@@ -1,5 +1,5 @@
+ /*
+- $Id: Encode.xs,v 2.20 2010/12/31 22:48:48 dankogai Exp dankogai $
++ $Id: Encode.xs,v 2.20 2010/12/31 22:48:48 dankogai Exp $
+  */
+ 
+ #define PERL_NO_GET_CONTEXT
+diff -ur perl-5.14.2/cpan/Encode/META.yml perl-5.14.2/cpan/Encode//META.yml
+--- perl-5.14.2/cpan/Encode/META.yml	Mon Sep 26 10:44:34 2011
++++ perl-5.14.2/cpan/Encode/META.yml	Sat Mar  3 09:29:34 2012
+@@ -1,6 +1,6 @@
+ --- #YAML:1.0
+ name:               Encode
+-version:            2.42
++version:            2.44
+ abstract:           ~
+ author:  []
+ license:            unknown
+@@ -14,7 +14,7 @@
+     directory:
+         - t
+         - inc
+-generated_by:       ExtUtils::MakeMaker version 6.56
++generated_by:       ExtUtils::MakeMaker version 6.57_05
+ meta-spec:
+     url:      http://module-build.sourceforge.net/META-spec-v1.4.html
+     version:  1.4
+diff -ur perl-5.14.2/cpan/Encode/encoding.pm perl-5.14.2/cpan/Encode/encoding.pm
+--- perl-5.14.2/cpan/Encode/encoding.pm	Mon Sep 26 10:44:34 2011
++++ perl-5.14.2/cpan/Encode/encoding.pm	Sat Mar  3 09:29:34 2012
+@@ -1,4 +1,4 @@
+-# $Id: encoding.pm,v 2.8 2009/02/15 17:44:13 dankogai Exp $
++# $Id: encoding.pm,v 2.9 2011/08/09 07:49:44 dankogai Exp dankogai $
+ package encoding;
+ our $VERSION = '2.6_01';
+ 
+@@ -6,7 +6,7 @@
+ use strict;
+ use warnings;
+ 
+-sub DEBUG () { 0 }
++use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
+ 
+ BEGIN {
+     if ( ord("A") == 193 ) {
+diff -ur perl-5.14.2/cpan/Encode/Unicode/Unicode.xs perl-5.14.2/cpan/Encode/Unicode/Unicode.xs
+--- perl-5.14.2/cpan/Encode/Unicode/Unicode.xs	Mon Sep 26 10:44:34 2011
++++ perl-5.14.2/cpan/Encode/Unicode/Unicode.xs	Sat Mar  3 09:29:34 2012
+@@ -1,5 +1,5 @@
+ /*
+- $Id: Unicode.xs,v 2.7 2010/12/31 22:48:48 dankogai Exp dankogai $
++ $Id: Unicode.xs,v 2.8 2011/08/09 07:49:44 dankogai Exp dankogai $
+  */
+ 
+ #define PERL_NO_GET_CONTEXT
+@@ -256,9 +256,9 @@
+ 	       This prevents allocating too much in the rogue case of a large
+ 	       input consisting initially of long sequence uft8-byte unicode
+ 	       chars followed by single utf8-byte chars. */
+-	    /* +1
+-	       fixes  Unicode.xs!decode_xs n-byte heap-overflow
+-	    */
++            /* +1 
++               fixes  Unicode.xs!decode_xs n-byte heap-overflow
++              */
+ 	    STRLEN remaining = (e - s)/usize + 1; /* +1 to avoid the leak */
+ 	    STRLEN max_alloc = remaining + (8*1024*1024);
+ 	    STRLEN est_alloc = remaining * UTF8_MAXLEN;
+diff -ur perl-5.14.2/cpan/Encode/lib/Encode/Alias.pm perl-5.14.2/cpan/Encode//lib/Encode/Alias.pm
+--- perl-5.14.2/cpan/Encode/lib/Encode/Alias.pm	Mon Sep 26 10:44:34 2011
++++ perl-5.14.2/cpan/Encode/lib/Encode/Alias.pm	Sat Mar  3 09:29:34 2012
+@@ -2,8 +2,8 @@
+ use strict;
+ use warnings;
+ no warnings 'redefine';
+-our $VERSION = do { my @r = ( q$Revision: 2.13 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+-sub DEBUG () { 0 }
++our $VERSION = do { my @r = ( q$Revision: 2.15 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
++use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
+ 
+ use base qw(Exporter);
+ 
+@@ -206,7 +206,7 @@
+     # Mac Mappings
+     # predefined in *.ucm; unneeded
+     # define_alias( qr/\bmacIcelandic$/i => '"macIceland"');
+-    define_alias( qr/^mac_(.*)$/i => '"mac$1"' );
++    define_alias( qr/^(?:x[_-])?mac[_-](.*)$/i => '"mac$1"' );
+     # http://rt.cpan.org/Ticket/Display.html?id=36326
+     define_alias( qr/^macintosh$/i => '"MacRoman"' );
+ 
+diff -ur perl-5.14.2/cpan/Encode/lib/Encode/Encoder.pm perl-5.14.2/cpan/Encode/lib/Encode/Encoder.pm
+--- perl-5.14.2/cpan/Encode/lib/Encode/Encoder.pm	Mon Sep 26 10:44:34 2011
++++ perl-5.14.2/cpan/Encode/lib/Encode/Encoder.pm	Sat Mar  3 09:29:34 2012
+@@ -1,10 +1,10 @@
+ #
+-# $Id: Encoder.pm,v 2.1 2006/05/03 18:24:10 dankogai Exp $
++# $Id: Encoder.pm,v 2.2 2011/08/09 07:49:44 dankogai Exp dankogai $
+ #
+ package Encode::Encoder;
+ use strict;
+ use warnings;
+-our $VERSION = do { my @r = ( q$Revision: 2.1 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
++our $VERSION = do { my @r = ( q$Revision: 2.2 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+ 
+ require Exporter;
+ our @ISA       = qw(Exporter);
+@@ -11,7 +11,7 @@
+ our @EXPORT_OK = qw ( encoder );
+ 
+ our $AUTOLOAD;
+-sub DEBUG () { 0 }
++use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
+ use Encode qw(encode decode find_encoding from_to);
+ use Carp;
+ 
+diff -ur perl-5.14.2/cpan/Encode/lib/Encode/Guess.pm perl-5.14.2/cpan/Encode/lib/Encode/Guess.pm
+--- perl-5.14.2/cpan/Encode/lib/Encode/Guess.pm	Mon Sep 26 10:44:34 2011
++++ perl-5.14.2/cpan/Encode/lib/Encode/Guess.pm	Sat Mar  3 09:29:34 2012
+@@ -2,10 +2,10 @@
+ use strict;
+ use warnings;
+ use Encode qw(:fallbacks find_encoding);
+-our $VERSION = do { my @r = ( q$Revision: 2.4 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
++our $VERSION = do { my @r = ( q$Revision: 2.5 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+ 
+ my $Canon = 'Guess';
+-sub DEBUG () { 0 }
++use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
+ our %DEF_SUSPECTS = map { $_ => find_encoding($_) } qw(ascii utf8);
+ $Encode::Encoding{$Canon} = bless {
+     Name     => $Canon,
+diff -ur perl-5.14.2/pod/perldelta.pod.orig perl-5.14.2/pod/perldelta.pod
+--- perl-5.14.2/pod/perldelta.pod.orig	Mon Sep 26 10:44:34 2011
++++ perl-5.14.2/pod/perldelta.pod	Sat Mar  3 09:45:43 2012
+@@ -123,6 +123,12 @@
+ 
+ =item *
+ 
++L<Encode> has been upgraded from version 2.42 to version 2.44
++
++Addressed 'decode_xs n-byte heap-overflow' security bug in Unicode.xs
++
++=item *
++
+ In @INC filters (subroutines returned by subroutines in @INC), $_ used to
+ misbehave: If returned from a subroutine, it would not be copied, but the
+ variable itself would be returned; and freeing $_ (e.g., with C<undef *_>)

File components/perl/perl514/patches/soname.patch

+--- perl-5.14.2/Makefile.SH.orig	Sat Mar 17 06:41:22 2012
++++ perl-5.14.2/Makefile.SH	Sat Mar 17 06:41:55 2012
+@@ -46,6 +46,14 @@
+ 	pldlflags="$cccdlflags"
+ 	static_ldflags=''
+ 	case "${osname}${osvers}" in
++        solaris*)
++                case "$cc" in
++                gcc)
++                        shrpldflags="$shrpldflags -Wl,-soname,libperl.so.${api_revision}.${api_version}";;
++                cc)
++                        shrpldflags="$shrpldflags -h libperl.so.${api_revision}.${api_version}";;
++                esac
++	        ;;
+ 	next4*)
+ 		ld=libtool
+ 		lddlflags="-dynamic -undefined warning -framework System \
+@@ -763,6 +771,7 @@
+ 		$spitshell >>$Makefile <<'!NO!SUBS!'
+ 	rm -f $@
+ 	$(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs)
++	rm -f libperl.so; ln -s $@ libperl.so
+ !NO!SUBS!
+ 		case "$osname" in
+ 		aix)

File components/perl/perl514/perl-514.p5m

+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2012 Bayard G. Bell. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+
+set name=pkg.fmri \
+    value=pkg:/runtime/perl-514@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.description \
+    value="Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more."
+set name=pkg.summary value=Perl
+set name=info.classification \
+    value=org.opensolaris.category.2008:Development/Perl
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+license artistic.license license='Artistic'
+
+dir path=usr
+dir path=usr/perl5
+dir path=usr/perl5/$(PERL_VERSION)
+dir path=usr/perl5/$(PERL_VERSION)/bin
+dir path=usr/perl5/$(PERL_VERSION)/lib
+dir path=usr/perl5/$(PERL_VERSION)/lib/App
+dir path=usr/perl5/$(PERL_VERSION)/lib/App/Prove
+dir path=usr/perl5/$(PERL_VERSION)/lib/App/Prove/State
+dir path=usr/perl5/$(PERL_VERSION)/lib/App/Prove/State/Result
+dir path=usr/perl5/$(PERL_VERSION)/lib/Archive
+dir path=usr/perl5/$(PERL_VERSION)/lib/Archive/Tar
+dir path=usr/perl5/$(PERL_VERSION)/lib/Attribute
+dir path=usr/perl5/$(PERL_VERSION)/lib/B
+dir path=usr/perl5/$(PERL_VERSION)/lib/B/Lint
+dir path=usr/perl5/$(PERL_VERSION)/lib/CGI
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPAN
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPAN/API
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Exception
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPAN/FTP
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPAN/HTTP
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Kwalify
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPAN/LWP
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Meta
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Backend
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Configure
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Dist
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Dist/Build
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Constants
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Source
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Source/SQLite
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Utils
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Module
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Module/Author
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Shell
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Shell/Default
+dir path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Shell/Default/Plugins
+dir path=usr/perl5/$(PERL_VERSION)/lib/Carp
+dir path=usr/perl5/$(PERL_VERSION)/lib/Class
+dir path=usr/perl5/$(PERL_VERSION)/lib/Compress
+dir path=usr/perl5/$(PERL_VERSION)/lib/Config
+dir path=usr/perl5/$(PERL_VERSION)/lib/DBM_Filter
+dir path=usr/perl5/$(PERL_VERSION)/lib/Devel
+dir path=usr/perl5/$(PERL_VERSION)/lib/Digest
+dir path=usr/perl5/$(PERL_VERSION)/lib/Encode
+dir path=usr/perl5/$(PERL_VERSION)/lib/Exporter
+dir path=usr/perl5/$(PERL_VERSION)/lib/ExtUtils
+dir path=usr/perl5/$(PERL_VERSION)/lib/ExtUtils/CBuilder
+dir path=usr/perl5/$(PERL_VERSION)/lib/ExtUtils/CBuilder/Platform
+dir path=usr/perl5/$(PERL_VERSION)/lib/ExtUtils/CBuilder/Platform/Windows
+dir path=usr/perl5/$(PERL_VERSION)/lib/ExtUtils/Command
+dir path=usr/perl5/$(PERL_VERSION)/lib/ExtUtils/Constant
+dir path=usr/perl5/$(PERL_VERSION)/lib/ExtUtils/Liblist
+dir path=usr/perl5/$(PERL_VERSION)/lib/ExtUtils/MakeMaker
+dir path=usr/perl5/$(PERL_VERSION)/lib/File
+dir path=usr/perl5/$(PERL_VERSION)/lib/Filter
+dir path=usr/perl5/$(PERL_VERSION)/lib/Getopt
+dir path=usr/perl5/$(PERL_VERSION)/lib/HTTP
+dir path=usr/perl5/$(PERL_VERSION)/lib/I18N
+dir path=usr/perl5/$(PERL_VERSION)/lib/I18N/LangTags
+dir path=usr/perl5/$(PERL_VERSION)/lib/IO
+dir path=usr/perl5/$(PERL_VERSION)/lib/IO/Compress
+dir path=usr/perl5/$(PERL_VERSION)/lib/IO/Compress/Adapter
+dir path=usr/perl5/$(PERL_VERSION)/lib/IO/Compress/Base
+dir path=usr/perl5/$(PERL_VERSION)/lib/IO/Compress/Gzip
+dir path=usr/perl5/$(PERL_VERSION)/lib/IO/Compress/Zip
+dir path=usr/perl5/$(PERL_VERSION)/lib/IO/Compress/Zlib
+dir path=usr/perl5/$(PERL_VERSION)/lib/IO/Uncompress
+dir path=usr/perl5/$(PERL_VERSION)/lib/IO/Uncompress/Adapter
+dir path=usr/perl5/$(PERL_VERSION)/lib/IPC
+dir path=usr/perl5/$(PERL_VERSION)/lib/JSON
+dir path=usr/perl5/$(PERL_VERSION)/lib/JSON/PP
+dir path=usr/perl5/$(PERL_VERSION)/lib/Locale
+dir path=usr/perl5/$(PERL_VERSION)/lib/Locale/Codes
+dir path=usr/perl5/$(PERL_VERSION)/lib/Locale/Maketext
+dir path=usr/perl5/$(PERL_VERSION)/lib/Log
+dir path=usr/perl5/$(PERL_VERSION)/lib/Log/Message
+dir path=usr/perl5/$(PERL_VERSION)/lib/Math
+dir path=usr/perl5/$(PERL_VERSION)/lib/Math/BigFloat
+dir path=usr/perl5/$(PERL_VERSION)/lib/Math/BigInt
+dir path=usr/perl5/$(PERL_VERSION)/lib/Memoize
+dir path=usr/perl5/$(PERL_VERSION)/lib/Module
+dir path=usr/perl5/$(PERL_VERSION)/lib/Module/Build
+dir path=usr/perl5/$(PERL_VERSION)/lib/Module/Build/Platform
+dir path=usr/perl5/$(PERL_VERSION)/lib/Module/Load
+dir path=usr/perl5/$(PERL_VERSION)/lib/Module/Pluggable
+dir path=usr/perl5/$(PERL_VERSION)/lib/Net
+dir path=usr/perl5/$(PERL_VERSION)/lib/Net/FTP
+dir path=usr/perl5/$(PERL_VERSION)/lib/Object
+dir path=usr/perl5/$(PERL_VERSION)/lib/Package
+dir path=usr/perl5/$(PERL_VERSION)/lib/Params
+dir path=usr/perl5/$(PERL_VERSION)/lib/Parse
+dir path=usr/perl5/$(PERL_VERSION)/lib/Parse/CPAN
+dir path=usr/perl5/$(PERL_VERSION)/lib/Perl
+dir path=usr/perl5/$(PERL_VERSION)/lib/PerlIO
+dir path=usr/perl5/$(PERL_VERSION)/lib/PerlIO/via
+dir path=usr/perl5/$(PERL_VERSION)/lib/Pod
+dir path=usr/perl5/$(PERL_VERSION)/lib/Pod/Perldoc
+dir path=usr/perl5/$(PERL_VERSION)/lib/Pod/Simple
+dir path=usr/perl5/$(PERL_VERSION)/lib/Pod/Text
+dir path=usr/perl5/$(PERL_VERSION)/lib/Search
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP/Formatter
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP/Formatter/Console
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP/Formatter/File
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP/Harness
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP/Parser
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP/Parser/Iterator
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP/Parser/Result
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP/Parser/Scheduler
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP/Parser/SourceHandler
+dir path=usr/perl5/$(PERL_VERSION)/lib/TAP/Parser/YAMLish
+dir path=usr/perl5/$(PERL_VERSION)/lib/Term
+dir path=usr/perl5/$(PERL_VERSION)/lib/Term/UI
+dir path=usr/perl5/$(PERL_VERSION)/lib/Test
+dir path=usr/perl5/$(PERL_VERSION)/lib/Test/Builder
+dir path=usr/perl5/$(PERL_VERSION)/lib/Test/Builder/Tester
+dir path=usr/perl5/$(PERL_VERSION)/lib/Text
+dir path=usr/perl5/$(PERL_VERSION)/lib/Thread
+dir path=usr/perl5/$(PERL_VERSION)/lib/Tie
+dir path=usr/perl5/$(PERL_VERSION)/lib/Time
+dir path=usr/perl5/$(PERL_VERSION)/lib/Unicode
+dir path=usr/perl5/$(PERL_VERSION)/lib/Unicode/Collate
+dir path=usr/perl5/$(PERL_VERSION)/lib/Unicode/Collate/CJK
+dir path=usr/perl5/$(PERL_VERSION)/lib/Unicode/Collate/Locale
+dir path=usr/perl5/$(PERL_VERSION)/lib/User
+dir path=usr/perl5/$(PERL_VERSION)/lib/Version
+dir path=usr/perl5/$(PERL_VERSION)/lib/autodie
+dir path=usr/perl5/$(PERL_VERSION)/lib/autodie/exception
+dir path=usr/perl5/$(PERL_VERSION)/lib/encoding
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/B
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/CORE
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Compress
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Compress/Raw
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Data
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Devel
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Digest
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Encode
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Encode/CN
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Encode/JP
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Encode/KR
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Encode/MIME
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Encode/MIME/Header
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Encode/Unicode
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/File
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/File/Spec
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Filter
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Filter/Util
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Hash
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Hash/Util
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/I18N
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/IO
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/IO/Socket
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/IPC
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/List
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/List/Util
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/MIME
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Math
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Math/BigInt
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/PerlIO
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Scalar
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Scalar/Util
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Sys
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Text
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Tie
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Tie/Hash
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Time
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Unicode
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/Unicode/Collate
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/B
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Compress
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Compress/Raw
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Compress/Raw/Bzip2
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Compress/Raw/Zlib
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Cwd
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/DB_File
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Data
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Data/Dumper
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Devel
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Devel/DProf
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Devel/PPPort
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Devel/Peek
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Digest
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Digest/MD5
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Digest/SHA
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Encode
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Encode/Byte
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Encode/CN
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Encode/EBCDIC
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Encode/JP
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Encode/KR
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Encode/Symbol
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Encode/TW
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Encode/Unicode
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Fcntl
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/File
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/File/Glob
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Filter
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Filter/Util
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Filter/Util/Call
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/GDBM_File
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Hash
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Hash/Util
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Hash/Util/FieldHash
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/I18N
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/I18N/Langinfo
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/IO
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/IPC
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/IPC/SysV
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/List
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/List/Util
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/MIME
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/MIME/Base64
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Math
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Math/BigInt
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Math/BigInt/FastCalc
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/NDBM_File
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/ODBM_File
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Opcode
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/POSIX
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/POSIX/SigAction
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/POSIX/SigRt
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/PerlIO
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/PerlIO/encoding
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/PerlIO/scalar
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/PerlIO/via
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/SDBM_File
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Socket
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Storable
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Sys
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Sys/Hostname
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Sys/Syslog
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Text
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Text/Soundex
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Tie
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Tie/Hash
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Tie/Hash/NamedCapture
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Time
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Time/HiRes
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Time/Piece
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Unicode
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Unicode/Collate
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/Unicode/Normalize
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/attributes
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/mro
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/re
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/sdbm
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/threads
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/auto/threads/shared
+dir path=usr/perl5/$(PERL_VERSION)/lib/$(PERL_ARCH)-solaris-64int/threads
+dir path=usr/perl5/$(PERL_VERSION)/lib/inc
+dir path=usr/perl5/$(PERL_VERSION)/lib/inc/latest
+dir path=usr/perl5/$(PERL_VERSION)/lib/overload
+dir path=usr/perl5/$(PERL_VERSION)/lib/pod
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/To
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/AHex
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Age
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Alpha
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Bc
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/BidiC
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/BidiM
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Blk
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/CE
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/CI
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/CWCF
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/CWCM
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/CWKCF
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/CWL
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/CWT
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/CWU
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Cased
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Ccc
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/CompEx
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/DI
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Dash
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Dep
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Dia
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Dt
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Ea
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Ext
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/GCB
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Gc
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/GrBase
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/GrExt
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Hex
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Hst
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Hyphen
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/IDC
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/IDS
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/IDSB
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/IDST
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Ideo
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/In
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Jg
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/JoinC
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Jt
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/LOE
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Lb
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Lower
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Math
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/NChar
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/NFCQC
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/NFDQC
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/NFKCQC
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/NFKDQC
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Nt
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Nv
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/OAlpha
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/ODI
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/OGrExt
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/OIDC
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/OIDS
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/OLower
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/OMath
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/OUpper
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/PatSyn
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/PatWS
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Perl
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/QMark
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Radical
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/SB
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/SD
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/STerm
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Sc
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Space
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Term
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/UIdeo
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/Upper
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/VS
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/WB
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/XIDC
+dir path=usr/perl5/$(PERL_VERSION)/lib/unicore/lib/XIDS
+dir path=usr/perl5/$(PERL_VERSION)/lib/version
+dir path=usr/perl5/$(PERL_VERSION)/lib/warnings
+dir path=usr/perl5/$(PERL_VERSION)/man
+dir path=usr/perl5/$(PERL_VERSION)/man/man1
+dir path=usr/perl5/$(PERL_VERSION)/man/man3
+dir path=usr/perl5/site_perl
+dir path=usr/perl5/site_perl/$(PERL_VERSION)
+dir path=usr/perl5/site_perl/$(PERL_VERSION)/$(PERL_ARCH)-solaris-64int
+file path=usr/perl5/$(PERL_VERSION)/bin/a2p
+file path=usr/perl5/$(PERL_VERSION)/bin/c2ph
+file path=usr/perl5/$(PERL_VERSION)/bin/config_data
+file path=usr/perl5/$(PERL_VERSION)/bin/corelist
+file path=usr/perl5/$(PERL_VERSION)/bin/cpan
+file path=usr/perl5/$(PERL_VERSION)/bin/cpan2dist
+file path=usr/perl5/$(PERL_VERSION)/bin/cpanp
+file path=usr/perl5/$(PERL_VERSION)/bin/cpanp-run-perl
+file path=usr/perl5/$(PERL_VERSION)/bin/dprofpp
+file path=usr/perl5/$(PERL_VERSION)/bin/enc2xs
+file path=usr/perl5/$(PERL_VERSION)/bin/find2perl
+file path=usr/perl5/$(PERL_VERSION)/bin/h2ph
+file path=usr/perl5/$(PERL_VERSION)/bin/h2xs
+file path=usr/perl5/$(PERL_VERSION)/bin/instmodsh
+file path=usr/perl5/$(PERL_VERSION)/bin/json_pp
+file path=usr/perl5/$(PERL_VERSION)/bin/libnetcfg
+file path=usr/perl5/$(PERL_VERSION)/bin/perl
+file path=usr/perl5/$(PERL_VERSION)/bin/perlbug
+file path=usr/perl5/$(PERL_VERSION)/bin/perldoc
+file path=usr/perl5/$(PERL_VERSION)/bin/perlivp
+file path=usr/perl5/$(PERL_VERSION)/bin/piconv
+file path=usr/perl5/$(PERL_VERSION)/bin/pl2pm
+file path=usr/perl5/$(PERL_VERSION)/bin/pod2html
+file path=usr/perl5/$(PERL_VERSION)/bin/pod2latex
+file path=usr/perl5/$(PERL_VERSION)/bin/pod2man
+file path=usr/perl5/$(PERL_VERSION)/bin/pod2text
+file path=usr/perl5/$(PERL_VERSION)/bin/pod2usage
+file path=usr/perl5/$(PERL_VERSION)/bin/podchecker
+file path=usr/perl5/$(PERL_VERSION)/bin/podselect
+file path=usr/perl5/$(PERL_VERSION)/bin/prove
+file path=usr/perl5/$(PERL_VERSION)/bin/pstruct
+file path=usr/perl5/$(PERL_VERSION)/bin/ptar
+file path=usr/perl5/$(PERL_VERSION)/bin/ptardiff
+file path=usr/perl5/$(PERL_VERSION)/bin/ptargrep
+file path=usr/perl5/$(PERL_VERSION)/bin/s2p
+file path=usr/perl5/$(PERL_VERSION)/bin/shasum
+file path=usr/perl5/$(PERL_VERSION)/bin/splain
+file path=usr/perl5/$(PERL_VERSION)/bin/xsubpp
+file path=usr/perl5/$(PERL_VERSION)/lib/AnyDBM_File.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/App/Cpan.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/App/Prove.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/App/Prove/State.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/App/Prove/State/Result.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/App/Prove/State/Result/Test.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/Archive/Extract.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/Archive/Tar.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/Archive/Tar/Constant.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/Archive/Tar/File.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/Attribute/Handlers.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/AutoLoader.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/AutoSplit.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/B/Debug.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/B/Deparse.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/B/Lint.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/B/Lint/Debug.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/Benchmark.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CGI.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CGI/Apache.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CGI/Carp.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CGI/Cookie.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CGI/Fast.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CGI/Pretty.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CGI/Push.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CGI/Switch.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CGI/Util.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CORE.pod
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/API/HOWTO.pod
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Author.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Bundle.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/CacheMgr.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Complete.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Debug.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/DeferredCode.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Distribution.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Distroprefs.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Distrostatus.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Exception/RecursiveDependency.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Exception/blocked_urllist.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Exception/yaml_not_installed.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/FTP.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/FTP/netrc.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/FirstTime.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/HTTP/Client.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/HTTP/Credentials.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/HandleConfig.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Index.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/InfoObj.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Kwalify.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Kwalify/distroprefs.dd
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Kwalify/distroprefs.yml
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/LWP/UserAgent.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Meta.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Meta/Converter.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Meta/Feature.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Meta/History.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Meta/Prereqs.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Meta/Spec.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Meta/Validator.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Meta/YAML.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Mirrors.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Module.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Nox.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Prompt.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Queue.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Shell.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Tarzip.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/URL.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPAN/Version.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Backend.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Backend/RV.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Config.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Configure.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Configure/Setup.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Dist.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Dist/Autobundle.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Dist/Base.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Dist/Build.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Dist/Build/Constants.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Dist/MM.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Dist/Sample.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Error.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/FAQ.pod
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Hacking.pod
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Constants.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Constants/Report.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Extract.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Fetch.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Report.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Search.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Source.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Source/Memory.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Source/SQLite.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Source/SQLite/Tie.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Utils.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Internals/Utils/Autoflush.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Module.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Module/Author.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Module/Author/Fake.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Module/Checksums.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Module/Fake.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Module/Signature.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Selfupdate.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Shell.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Shell/Classic.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Shell/Default.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Shell/Default/Plugins/CustomSource.pm
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Shell/Default/Plugins/HOWTO.pod
+file path=usr/perl5/$(PERL_VERSION)/lib/CPANPLUS/Shell/Default/Plugins/Remote.pm