r57356 - in /branches/upstream/libclass-isa-perl: ./ current/ current/lib/ current/lib/Class/ current/t/
dom at users.alioth.debian.org
dom at users.alioth.debian.org
Mon May 3 12:23:11 UTC 2010
Author: dom
Date: Mon May 3 12:22:53 2010
New Revision: 57356
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=57356
Log:
[svn-inject] Installing original source of libclass-isa-perl
Added:
branches/upstream/libclass-isa-perl/
branches/upstream/libclass-isa-perl/current/
branches/upstream/libclass-isa-perl/current/ChangeLog
branches/upstream/libclass-isa-perl/current/MANIFEST
branches/upstream/libclass-isa-perl/current/MANIFEST.SKIP
branches/upstream/libclass-isa-perl/current/META.yml
branches/upstream/libclass-isa-perl/current/Makefile.PL
branches/upstream/libclass-isa-perl/current/README
branches/upstream/libclass-isa-perl/current/lib/
branches/upstream/libclass-isa-perl/current/lib/Class/
branches/upstream/libclass-isa-perl/current/lib/Class/ISA.pm
branches/upstream/libclass-isa-perl/current/t/
branches/upstream/libclass-isa-perl/current/t/00_about_verbose.t
branches/upstream/libclass-isa-perl/current/t/01_old_junk.t
Added: branches/upstream/libclass-isa-perl/current/ChangeLog
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-isa-perl/current/ChangeLog?rev=57356&op=file
==============================================================================
--- branches/upstream/libclass-isa-perl/current/ChangeLog (added)
+++ branches/upstream/libclass-isa-perl/current/ChangeLog Mon May 3 12:22:53 2010
@@ -1,0 +1,36 @@
+Revision history for Perl extension Class::ISA
+
+2009-09-29 Steffen Mueller smueller at cpan.org
+
+ * Release 0.36 -- fix installation dirs.
+
+2009-09-26 Steffen Mueller smueller at cpan.org
+
+ * Release 0.35 -- minor documentation nit.
+
+2009-09-22 Steffen Mueller smueller at cpan.org
+
+ * Release 0.34 -- add core deprecation logic,
+ some distribution shuffling. No code changes.
+
+2004-12-29 Sean M. Burke sburke at cpan.org
+
+ * Release 0.33 -- just rebundling. No code changes.
+
+
+2000-05-13 Sean M. Burke sburke at cpan.org
+
+ * Release 0.32 -- Just noting my new email address.
+
+
+1999-05-14 Sean M. Burke sburke at netadventure.net
+
+ * Release 0.31 -- release version.
+
+ No changes in functionality -- just changed the core algorithm to
+ something that should behave the same, but is cleaner and faster.
+
+
+1999-01-23 Sean M. Burke sburke at netadventure.net
+
+ * Release 0.20 -- first release version.
Added: branches/upstream/libclass-isa-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-isa-perl/current/MANIFEST?rev=57356&op=file
==============================================================================
--- branches/upstream/libclass-isa-perl/current/MANIFEST (added)
+++ branches/upstream/libclass-isa-perl/current/MANIFEST Mon May 3 12:22:53 2010
@@ -1,0 +1,9 @@
+ChangeLog
+lib/Class/ISA.pm
+Makefile.PL
+MANIFEST This list of files
+MANIFEST.SKIP
+README
+t/00_about_verbose.t
+t/01_old_junk.t
+META.yml Module meta-data (added by MakeMaker)
Added: branches/upstream/libclass-isa-perl/current/MANIFEST.SKIP
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-isa-perl/current/MANIFEST.SKIP?rev=57356&op=file
==============================================================================
--- branches/upstream/libclass-isa-perl/current/MANIFEST.SKIP (added)
+++ branches/upstream/libclass-isa-perl/current/MANIFEST.SKIP Mon May 3 12:22:53 2010
@@ -1,0 +1,10 @@
+^MANIFEST\.bak$
+Makefile(\.old)?$
+\.rej$
+CVS
+blib
+~
+.svn
+Class-ISA-.*\.tar\.gz$
+\.swp$
+\.swo$
Added: branches/upstream/libclass-isa-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-isa-perl/current/META.yml?rev=57356&op=file
==============================================================================
--- branches/upstream/libclass-isa-perl/current/META.yml (added)
+++ branches/upstream/libclass-isa-perl/current/META.yml Mon May 3 12:22:53 2010
@@ -1,0 +1,21 @@
+--- #YAML:1.0
+name: Class-ISA
+version: 0.36
+abstract: ~
+author: []
+license: unknown
+distribution_type: module
+configure_requires:
+ ExtUtils::MakeMaker: 0
+build_requires:
+ ExtUtils::MakeMaker: 0
+requires:
+ if: 0
+no_index:
+ directory:
+ - t
+ - inc
+generated_by: ExtUtils::MakeMaker version 6.54
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
Added: branches/upstream/libclass-isa-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-isa-perl/current/Makefile.PL?rev=57356&op=file
==============================================================================
--- branches/upstream/libclass-isa-perl/current/Makefile.PL (added)
+++ branches/upstream/libclass-isa-perl/current/Makefile.PL Mon May 3 12:22:53 2010
@@ -1,0 +1,20 @@
+# This -*-perl-*- script writes the Makefile for installing this distribution.
+#
+# See "perldoc perlmodinstall" or "perldoc ExtUtils::MakeMaker" for
+# info on how to control how the installation goes.
+#
+# Time-stamp: "2004-12-29 20:20:52 AST"
+
+require 5.004;
+use strict;
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+ 'NAME' => 'Class::ISA',
+ 'VERSION_FROM' => 'lib/Class/ISA.pm', # finds $VERSION
+ 'PREREQ_PM' => {
+ 'if' => '0',
+ },
+ 'dist' => { COMPRESS => 'gzip -6f', SUFFIX => 'gz', },
+ 'INSTALLDIRS' => ((($] >= 5.007003) && ($] < 5.011)) ? 'perl' : 'site'),
+);
Added: branches/upstream/libclass-isa-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-isa-perl/current/README?rev=57356&op=file
==============================================================================
--- branches/upstream/libclass-isa-perl/current/README (added)
+++ branches/upstream/libclass-isa-perl/current/README Mon May 3 12:22:53 2010
@@ -1,0 +1,118 @@
+NAME
+ Class::ISA -- report the search path for a class's ISA tree
+
+SYNOPSIS
+ # Suppose you go: use Food::Fishstick, and that uses and
+ # inherits from other things, which in turn use and inherit
+ # from other things. And suppose, for sake of brevity of
+ # example, that their ISA tree is the same as:
+
+ @Food::Fishstick::ISA = qw(Food::Fish Life::Fungus Chemicals);
+ @Food::Fish::ISA = qw(Food);
+ @Food::ISA = qw(Matter);
+ @Life::Fungus::ISA = qw(Life);
+ @Chemicals::ISA = qw(Matter);
+ @Life::ISA = qw(Matter);
+ @Matter::ISA = qw();
+
+ use Class::ISA;
+ print "Food::Fishstick path is:\n ",
+ join(", ", Class::ISA::super_path('Food::Fishstick')),
+ "\n";
+
+ That prints:
+
+ Food::Fishstick path is:
+ Food::Fish, Food, Matter, Life::Fungus, Life, Chemicals
+
+DESCRIPTION
+ Suppose you have a class (like Food::Fish::Fishstick) that is derived,
+ via its @ISA, from one or more superclasses (as Food::Fish::Fishstick is
+ from Food::Fish, Life::Fungus, and Chemicals), and some of those
+ superclasses may themselves each be derived, via its @ISA, from one or
+ more superclasses (as above).
+
+ When, then, you call a method in that class ($fishstick->calories), Perl
+ first searches there for that method, but if it's not there, it goes
+ searching in its superclasses, and so on, in a depth-first (or maybe
+ "height-first" is the word) search. In the above example, it'd first
+ look in Food::Fish, then Food, then Matter, then Life::Fungus, then
+ Life, then Chemicals.
+
+ This library, Class::ISA, provides functions that return that list --
+ the list (in order) of names of classes Perl would search to find a
+ method, with no duplicates.
+
+FUNCTIONS
+ the function Class::ISA::super_path($CLASS)
+ This returns the ordered list of names of classes that Perl would
+ search thru in order to find a method, with no duplicates in the
+ list. $CLASS is not included in the list. UNIVERSAL is not included
+ -- if you need to consider it, add it to the end.
+
+ the function Class::ISA::self_and_super_path($CLASS)
+ Just like "super_path", except that $CLASS is included as the first
+ element.
+
+ the function Class::ISA::self_and_super_versions($CLASS)
+ This returns a hash whose keys are $CLASS and its
+ (super-)superclasses, and whose values are the contents of each
+ class's $VERSION (or undef, for classes with no $VERSION).
+
+ The code for self_and_super_versions is meant to serve as an example
+ for precisely the kind of tasks I anticipate that
+ self_and_super_path and super_path will be used for. You are
+ strongly advised to read the source for self_and_super_versions, and
+ the comments there.
+
+CAUTIONARY NOTES
+ * Class::ISA doesn't export anything. You have to address the functions
+ with a "Class::ISA::" on the front.
+
+ * Contrary to its name, Class::ISA isn't a class; it's just a package.
+ Strange, isn't it?
+
+ * Say you have a loop in the ISA tree of the class you're calling one of
+ the Class::ISA functions on: say that Food inherits from Matter, but
+ Matter inherits from Food (for sake of argument). If Perl, while
+ searching for a method, actually discovers this cyclicity, it will throw
+ a fatal error. The functions in Class::ISA effectively ignore this
+ cyclicity; the Class::ISA algorithm is "never go down the same path
+ twice", and cyclicities are just a special case of that.
+
+ * The Class::ISA functions just look at @ISAs. But theoretically, I
+ suppose, AUTOLOADs could bypass Perl's ISA-based search mechanism and do
+ whatever they please. That would be bad behavior, tho; and I try not to
+ think about that.
+
+ * If Perl can't find a method anywhere in the ISA tree, it then looks in
+ the magical class UNIVERSAL. This is rarely relevant to the tasks that I
+ expect Class::ISA functions to be put to, but if it matters to you, then
+ instead of this:
+
+ @supers = Class::Tree::super_path($class);
+
+ do this:
+
+ @supers = (Class::Tree::super_path($class), 'UNIVERSAL');
+
+ And don't say no-one ever told ya!
+
+ * When you call them, the Class::ISA functions look at @ISAs anew --
+ that is, there is no memoization, and so if ISAs change during runtime,
+ you get the current ISA tree's path, not anything memoized. However,
+ changing ISAs at runtime is probably a sign that you're out of your
+ mind!
+
+COPYRIGHT AND LICENSE
+ Copyright (c) 1999-2009 Sean M. Burke. All rights reserved.
+
+ This library is free software; you can redistribute it and/or modify it
+ under the same terms as Perl itself.
+
+AUTHOR
+ Sean M. Burke "sburke at cpan.org"
+
+MAINTAINER
+ Maintained by Steffen Mueller "smueller at cpan.org".
+
Added: branches/upstream/libclass-isa-perl/current/lib/Class/ISA.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-isa-perl/current/lib/Class/ISA.pm?rev=57356&op=file
==============================================================================
--- branches/upstream/libclass-isa-perl/current/lib/Class/ISA.pm (added)
+++ branches/upstream/libclass-isa-perl/current/lib/Class/ISA.pm Mon May 3 12:22:53 2010
@@ -1,0 +1,218 @@
+package Class::ISA;
+require 5;
+use strict;
+use vars qw($Debug $VERSION);
+$VERSION = '0.36';
+$Debug = 0 unless defined $Debug;
+
+use if $] >= 5.011, 'deprecate';
+
+###########################################################################
+
+sub self_and_super_versions {
+ no strict 'refs';
+ map {
+ $_ => (defined(${"$_\::VERSION"}) ? ${"$_\::VERSION"} : undef)
+ } self_and_super_path($_[0])
+}
+
+# Also consider magic like:
+# no strict 'refs';
+# my %class2SomeHashr =
+# map { defined(%{"$_\::SomeHash"}) ? ($_ => \%{"$_\::SomeHash"}) : () }
+# Class::ISA::self_and_super_path($class);
+# to get a hash of refs to all the defined (and non-empty) hashes in
+# $class and its superclasses.
+#
+# Or even consider this incantation for doing something like hash-data
+# inheritance:
+# no strict 'refs';
+# %union_hash =
+# map { defined(%{"$_\::SomeHash"}) ? %{"$_\::SomeHash"}) : () }
+# reverse(Class::ISA::self_and_super_path($class));
+# Consider that reverse() is necessary because with
+# %foo = ('a', 'wun', 'b', 'tiw', 'a', 'foist');
+# $foo{'a'} is 'foist', not 'wun'.
+
+###########################################################################
+sub super_path {
+ my @ret = &self_and_super_path(@_);
+ shift @ret if @ret;
+ return @ret;
+}
+
+#--------------------------------------------------------------------------
+sub self_and_super_path {
+ # Assumption: searching is depth-first.
+ # Assumption: '' (empty string) can't be a class package name.
+ # Note: 'UNIVERSAL' is not given any special treatment.
+ return () unless @_;
+
+ my @out = ();
+
+ my @in_stack = ($_[0]);
+ my %seen = ($_[0] => 1);
+
+ my $current;
+ while(@in_stack) {
+ next unless defined($current = shift @in_stack) && length($current);
+ print "At $current\n" if $Debug;
+ push @out, $current;
+ no strict 'refs';
+ unshift @in_stack,
+ map
+ { my $c = $_; # copy, to avoid being destructive
+ substr($c,0,2) = "main::" if substr($c,0,2) eq '::';
+ # Canonize the :: -> main::, ::foo -> main::foo thing.
+ # Should I ever canonize the Foo'Bar = Foo::Bar thing?
+ $seen{$c}++ ? () : $c;
+ }
+ @{"$current\::ISA"}
+ ;
+ # I.e., if this class has any parents (at least, ones I've never seen
+ # before), push them, in order, onto the stack of classes I need to
+ # explore.
+ }
+
+ return @out;
+}
+#--------------------------------------------------------------------------
+1;
+
+__END__
+
+=head1 NAME
+
+Class::ISA - report the search path for a class's ISA tree
+
+=head1 SYNOPSIS
+
+ # Suppose you go: use Food::Fishstick, and that uses and
+ # inherits from other things, which in turn use and inherit
+ # from other things. And suppose, for sake of brevity of
+ # example, that their ISA tree is the same as:
+
+ @Food::Fishstick::ISA = qw(Food::Fish Life::Fungus Chemicals);
+ @Food::Fish::ISA = qw(Food);
+ @Food::ISA = qw(Matter);
+ @Life::Fungus::ISA = qw(Life);
+ @Chemicals::ISA = qw(Matter);
+ @Life::ISA = qw(Matter);
+ @Matter::ISA = qw();
+
+ use Class::ISA;
+ print "Food::Fishstick path is:\n ",
+ join(", ", Class::ISA::super_path('Food::Fishstick')),
+ "\n";
+
+That prints:
+
+ Food::Fishstick path is:
+ Food::Fish, Food, Matter, Life::Fungus, Life, Chemicals
+
+=head1 DESCRIPTION
+
+Suppose you have a class (like Food::Fish::Fishstick) that is derived,
+via its @ISA, from one or more superclasses (as Food::Fish::Fishstick
+is from Food::Fish, Life::Fungus, and Chemicals), and some of those
+superclasses may themselves each be derived, via its @ISA, from one or
+more superclasses (as above).
+
+When, then, you call a method in that class ($fishstick->calories),
+Perl first searches there for that method, but if it's not there, it
+goes searching in its superclasses, and so on, in a depth-first (or
+maybe "height-first" is the word) search. In the above example, it'd
+first look in Food::Fish, then Food, then Matter, then Life::Fungus,
+then Life, then Chemicals.
+
+This library, Class::ISA, provides functions that return that list --
+the list (in order) of names of classes Perl would search to find a
+method, with no duplicates.
+
+=head1 FUNCTIONS
+
+=over
+
+=item the function Class::ISA::super_path($CLASS)
+
+This returns the ordered list of names of classes that Perl would
+search thru in order to find a method, with no duplicates in the list.
+$CLASS is not included in the list. UNIVERSAL is not included -- if
+you need to consider it, add it to the end.
+
+
+=item the function Class::ISA::self_and_super_path($CLASS)
+
+Just like C<super_path>, except that $CLASS is included as the first
+element.
+
+=item the function Class::ISA::self_and_super_versions($CLASS)
+
+This returns a hash whose keys are $CLASS and its
+(super-)superclasses, and whose values are the contents of each
+class's $VERSION (or undef, for classes with no $VERSION).
+
+The code for self_and_super_versions is meant to serve as an example
+for precisely the kind of tasks I anticipate that self_and_super_path
+and super_path will be used for. You are strongly advised to read the
+source for self_and_super_versions, and the comments there.
+
+=back
+
+=head1 CAUTIONARY NOTES
+
+* Class::ISA doesn't export anything. You have to address the
+functions with a "Class::ISA::" on the front.
+
+* Contrary to its name, Class::ISA isn't a class; it's just a package.
+Strange, isn't it?
+
+* Say you have a loop in the ISA tree of the class you're calling one
+of the Class::ISA functions on: say that Food inherits from Matter,
+but Matter inherits from Food (for sake of argument). If Perl, while
+searching for a method, actually discovers this cyclicity, it will
+throw a fatal error. The functions in Class::ISA effectively ignore
+this cyclicity; the Class::ISA algorithm is "never go down the same
+path twice", and cyclicities are just a special case of that.
+
+* The Class::ISA functions just look at @ISAs. But theoretically, I
+suppose, AUTOLOADs could bypass Perl's ISA-based search mechanism and
+do whatever they please. That would be bad behavior, tho; and I try
+not to think about that.
+
+* If Perl can't find a method anywhere in the ISA tree, it then looks
+in the magical class UNIVERSAL. This is rarely relevant to the tasks
+that I expect Class::ISA functions to be put to, but if it matters to
+you, then instead of this:
+
+ @supers = Class::Tree::super_path($class);
+
+do this:
+
+ @supers = (Class::Tree::super_path($class), 'UNIVERSAL');
+
+And don't say no-one ever told ya!
+
+* When you call them, the Class::ISA functions look at @ISAs anew --
+that is, there is no memoization, and so if ISAs change during
+runtime, you get the current ISA tree's path, not anything memoized.
+However, changing ISAs at runtime is probably a sign that you're out
+of your mind!
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (c) 1999-2009 Sean M. Burke. All rights reserved.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=head1 AUTHOR
+
+Sean M. Burke C<sburke at cpan.org>
+
+=head1 MAINTAINER
+
+Maintained by Steffen Mueller C<smueller at cpan.org>.
+
+=cut
+
Added: branches/upstream/libclass-isa-perl/current/t/00_about_verbose.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-isa-perl/current/t/00_about_verbose.t?rev=57356&op=file
==============================================================================
--- branches/upstream/libclass-isa-perl/current/t/00_about_verbose.t (added)
+++ branches/upstream/libclass-isa-perl/current/t/00_about_verbose.t Mon May 3 12:22:53 2010
@@ -1,0 +1,89 @@
+BEGIN {
+ chdir 't' if -d 't';
+ #@INC = '../lib';
+}
+
+require 5;
+# Time-stamp: "2004-12-29 20:57:15 AST"
+# Summary of, well, things.
+
+use Test;
+BEGIN {plan tests => 2};
+ok 1;
+
+use Class::ISA ();
+
+#chdir "t" if -e "t";
+
+{
+ my @out;
+ push @out,
+ "\n\nPerl v",
+ defined($^V) ? sprintf('%vd', $^V) : $],
+ " under $^O ",
+ (defined(&Win32::BuildNumber) and defined &Win32::BuildNumber())
+ ? ("(Win32::BuildNumber ", &Win32::BuildNumber(), ")") : (),
+ (defined $MacPerl::Version)
+ ? ("(MacPerl version $MacPerl::Version)") : (),
+ "\n"
+ ;
+
+ # Ugly code to walk the symbol tables:
+ my %v;
+ my @stack = (''); # start out in %::
+ my $this;
+ my $count = 0;
+ my $pref;
+ while(@stack) {
+ $this = shift @stack;
+ die "Too many packages?" if ++$count > 1000;
+ next if exists $v{$this};
+ next if $this eq 'main'; # %main:: is %::
+
+ #print "Peeking at $this => ${$this . '::VERSION'}\n";
+
+ if(defined ${$this . '::VERSION'} ) {
+ $v{$this} = ${$this . '::VERSION'}
+ } elsif(
+ defined *{$this . '::ISA'} or defined &{$this . '::import'}
+ or ($this ne '' and grep defined *{$_}{'CODE'}, values %{$this . "::"})
+ # If it has an ISA, an import, or any subs...
+ ) {
+ # It's a class/module with no version.
+ $v{$this} = undef;
+ } else {
+ # It's probably an unpopulated package.
+ ## $v{$this} = '...';
+ }
+
+ $pref = length($this) ? "$this\::" : '';
+ push @stack, map m/^(.+)::$/ ? "$pref$1" : (), keys %{$this . '::'};
+ #print "Stack: @stack\n";
+ }
+ push @out, " Modules in memory:\n";
+ delete @v{'', '[none]'};
+ foreach my $p (sort {lc($a) cmp lc($b)} keys %v) {
+ $indent = ' ' x (2 + ($p =~ tr/:/:/));
+ push @out, ' ', $indent, $p, defined($v{$p}) ? " v$v{$p};\n" : ";\n";
+ }
+ push @out, sprintf "[at %s (local) / %s (GMT)]\n",
+ scalar(gmtime), scalar(localtime);
+ my $x = join '', @out;
+ $x =~ s/^/#/mg;
+ print $x;
+}
+
+print "# Running",
+ (chr(65) eq 'A') ? " in an ASCII world.\n" : " in a non-ASCII world.\n",
+ "#\n",
+;
+
+print "# \@INC:\n", map("# [$_]\n", @INC), "#\n#\n";
+
+print "# \%INC:\n";
+foreach my $x (sort {lc($a) cmp lc($b)} keys %INC) {
+ print "# [$x] = [", $INC{$x} || '', "]\n";
+}
+
+ok 1;
+
Added: branches/upstream/libclass-isa-perl/current/t/01_old_junk.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-isa-perl/current/t/01_old_junk.t?rev=57356&op=file
==============================================================================
--- branches/upstream/libclass-isa-perl/current/t/01_old_junk.t (added)
+++ branches/upstream/libclass-isa-perl/current/t/01_old_junk.t Mon May 3 12:22:53 2010
@@ -1,0 +1,28 @@
+BEGIN {
+ chdir 't' if -d 't';
+ #@INC = '../lib';
+}
+
+# Time-stamp: "2004-12-29 19:59:33 AST"
+
+BEGIN { $| = 1; print "1..2\n"; }
+END {print "not ok 1\n" unless $loaded;}
+use Class::ISA;
+$loaded = 1;
+print "ok 1\n";
+
+ @Food::Fishstick::ISA = qw(Food::Fish Life::Fungus Chemicals);
+ @Food::Fish::ISA = qw(Food);
+ @Food::ISA = qw(Matter);
+ @Life::Fungus::ISA = qw(Life);
+ @Chemicals::ISA = qw(Matter);
+ @Life::ISA = qw(Matter);
+ @Matter::ISA = qw();
+
+ use Class::ISA;
+ my @path = Class::ISA::super_path('Food::Fishstick');
+ my $flat_path = join ' ', @path;
+ print "#Food::Fishstick path is:\n# $flat_path\n";
+ print
+ "Food::Fish Food Matter Life::Fungus Life Chemicals" eq $flat_path ?
+ "ok 2\n" : "fail 2!\n";
More information about the Pkg-perl-cvs-commits
mailing list