view release on metacpan or search on metacpan
},
"runtime" : {
"requires" : {
"Devel::Cycle" : "1.07",
"Getopt::Long" : "0",
"PadWalker" : "0",
"Test::Builder" : "0",
"Test::Builder::Tester" : "0",
"Test::More" : "0",
"Test::Simple" : "0.62"
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Test/Most.pm view on Meta::CPAN
$VAR2 = 'bar';
Note that this relies on L<Data::Dumper::Names> version 0.03 or greater. If
this is not present, it will warn and call L<explain> instead. Also, it can
only show the names for lexical variables. Globals such as C<%ENV> or C<%@>
are not accessed via PadWalker and thus cannot be shown. It would be nice to
find a workaround for this.
=head2 C<always_explain> and C<always_show>
These are identical to C<explain> and C<show>, but like L<Test::More>'s
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Test/Simpler.pm view on Meta::CPAN
use autodie;
use 5.014;
our $VERSION = '0.000008';
use PadWalker qw< peek_my peek_our >;
use Data::Dump qw< dump >;
use List::Util qw< max >;
use base 'Test::Builder::Module';
lib/Test/Simpler.pm view on Meta::CPAN
=item Test::Builder::Module
...to produce TAP reports and to emulate the Test::Simple interface.
=item PadWalker
...to track variable values
=item Data::Dump
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Test/Subroutines.pm view on Meta::CPAN
use strict;
use warnings FATAL => 'all';
use Devel::LexAlias qw(lexalias);
use PadWalker qw(closed_over peek_my);
use Symbol qw(qualify_to_ref);
use Devel::Symdump;
use File::Slurp;
our @used_modules;
view all matches for this distribution
view release on metacpan or search on metacpan
"requires" : {
"Encode" : "0",
"File::Spec" : "0",
"IO::Handle" : "0",
"IPC::Open3" : "0",
"PadWalker" : "0",
"Pod::Coverage::TrustPod" : "0",
"Pod::Wordlist" : "0",
"Test::CPAN::Changes" : "0.19",
"Test::CPAN::Meta" : "0",
"Test::Deep" : "0",
"perl" : "5.006"
},
"suggests" : {
"CPAN::Meta::Check" : "0.011",
"CPAN::Meta::Requirements" : "0",
"PadWalker" : "0",
"Test::Tester" : "0.108"
}
},
"x_Dist_Zilla" : {
"requires" : {
"copy_to" : [
"develop.requires"
],
"modules" : [
"Test::Tester",
"PadWalker"
],
"modules_from_features" : null,
"to_relationship" : "suggests"
}
},
view all matches for this distribution
view release on metacpan or search on metacpan
}
},
"runtime" : {
"requires" : {
"Devel::Cycle" : "0",
"PadWalker" : "1.0",
"Test2::API" : "1.302015",
"perl" : "5.008004"
}
},
"test" : {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Tie/Redis/Attribute.pm view on Meta::CPAN
use strict;
use warnings;
use Attribute::Handlers;
use Tie::Redis;
use PadWalker qw(var_name);
no warnings 'redefine';
sub import {
my($class) = @_;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Tie/Trace.pm view on Meta::CPAN
package Tie::Trace;
use strict;
use warnings;
use PadWalker ();
use Tie::Hash ();
use Tie::Array ();
use Tie::Scalar ();
use Carp ();
use Data::Dumper ();
lib/Tie/Trace.pm view on Meta::CPAN
Carp::croak("must pass one argument.") unless $s;
my @options = @_;
my $var_name;
eval{
$var_name = PadWalker::var_name(1, $s);
};
my $pkg = defined $var_name ? (caller)[0] : undef;
my $tied_value = tie $s_type eq 'SCALAR' ? $$s : $s_type eq 'ARRAY' ? @$s : %$s, "Tie::Trace", var => $var_name, pkg => $pkg, @options;
local $QUIET = 1;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Tripletail.pm view on Meta::CPAN
errormailtype
errortemplate
errortemplatecharset
escapeJs
escapeJsString
PadWalker
MemCached
memcached
mon
fcgilog
filelog
lib/Tripletail.pm view on Meta::CPAN
errorlog = 1
ã¨ã©ã¼çºçæã«ãã°ã«æ
å ±ãæ®ããã©ãããæå®ããã
1 ãæå®ãããã°ã¨ã©ã¼æ
å ±ãæ®ãã
2 ãæå®ãããã°ãã¨ã©ã¼æ
å ±ã«å ãã CGI ã®ãªã¯ã¨ã¹ãå
å®¹ãæ®ãï¼startCgiå
ã§ã®ã¨ã©ã¼ã®ã¿ï¼ã
3 ãæå®ãããã°ããã¼ã«ã«å¤æ°å
容ãå«ãã 詳細ãªã¨ã©ã¼æ
å ±ã«å ãã¦ï¼ä½ã PadWalker ãå¿
è¦ï¼ã CGI ã®ãªã¯ã¨ã¹ãå
å®¹ãæ®ãã
0 ã§ããã°æ
å ±ãæ®ããªãã
ããã©ã«ã㯠1ã
=item C<fcgilog>
lib/Tripletail.pm view on Meta::CPAN
ãã¬ã¼ã¹ãä¸å表示ããªãã'C<onlystack>' ã®å ´åã¯ãã¹ã¿ãã¯ãã¬ã¼ã¹ã®ã¿ã
表示ããã'full' ã®å ´åã¯ãã¹ã¿ãã¯ãã¬ã¼ã¹ã«å ãã¦ã½ã¼ã¹ã³ã¼ãæ¬ä½ä¸¦ã³
ã«åãã¬ã¼ã ã«æ¼ãããã¼ã«ã«å¤æ°ã®ä¸è¦§ãã表示ãããããã©ã«ãã¯
'C<onlystack>'ã
ä½ããã¼ã«ã«å¤æ°ä¸è¦§ã表示ããã«ã¯ L<PadWalker> ãã¤ã³ã¹ãã¼ã«ããã¦ã
ãªããã°ãªããªãã
注æ: 'full' ã®ç¶æ
ã§ã¯ãC<stackallow> ã§è¨±ãããå
¨ã¦ã®ã¦ã¼ã¶ã¼ãã
ãã©ã¦ã¶ããå
¨ã¦ã®ã½ã¼ã¹ã³ã¼ãåã³ ini
ãã¡ã¤ã«ã®ä¸èº«ãèªãäºãåºæ¥ãç¹ã«æ³¨æãããã¨ã
view all matches for this distribution
view release on metacpan or search on metacpan
Debian_CPANTS.txt view on Meta::CPAN
"libouch-perl", "Ouch", "0.0401", "0", "0"
"libpackage-deprecationmanager-perl", "Package-DeprecationManager", "0.10", "0", "0"
"libpackage-pkg-perl", "Package-Pkg", "0.0019", "0", "0"
"libpackage-stash-perl", "Package-Stash", "0.29", "0", "1"
"libpackage-stash-xs-perl", "Package-Stash-XS", "0.22", "0", "0"
"libpadwalker-perl", "PadWalker", "1.92", "0", "1"
"libpalm-perl", "p5-Palm", "1.012", "0", "2"
"libpango-perl", "Pango", "1.221", "0", "1"
"libpar-dist-perl", "PAR-Dist", "0.45", "0", "0"
"libpar-packer-perl", "PAR-Packer", "1.008", "0", "2"
"libpar-perl", "PAR", "1.002", "0", "1"
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Eval/TypeTiny.pm view on Meta::CPAN
return;
}
{
sub IMPLEMENTATION_DEVEL_LEXALIAS () { 'Devel::LexAlias' }
sub IMPLEMENTATION_PADWALKER () { 'PadWalker' }
sub IMPLEMENTATION_TIE () { 'tie' }
sub IMPLEMENTATION_NATIVE () { 'perl' }
my $implementation;
lib/Eval/TypeTiny.pm view on Meta::CPAN
# uncoverable subroutine
sub ALIAS_IMPLEMENTATION () {
$implementation ||= _pick_alternative(
if => ( $] ge '5.022' ) => IMPLEMENTATION_NATIVE,
needs => 'Devel::LexAlias' => IMPLEMENTATION_DEVEL_LEXALIAS,
needs => 'PadWalker' => IMPLEMENTATION_PADWALKER,
if => !!1 => IMPLEMENTATION_TIE,
);
}
#>>>
lib/Eval/TypeTiny.pm view on Meta::CPAN
Devel::LexAlias::lexalias( $code, $_ => $args{environment}{$_} )
for grep !/^\&/, @keys;
}
if ( $alias and ALIAS_IMPLEMENTATION eq IMPLEMENTATION_PADWALKER ) {
require PadWalker;
my %env = map +( $_ => $args{environment}{$_} ), grep !/^\&/, @keys;
PadWalker::set_closed_over( $code, \%env );
}
return $code;
} #/ sub eval_closure
lib/Eval/TypeTiny.pm view on Meta::CPAN
Eval::TypeTiny is currently using L<Devel::LexAlias> to provide aliases.
=item C<< IMPLEMENTATION_PADWALKER >>
If C<< ALIAS_IMPLEMENTATION eq IMPLEMENTATION_PADWALKER >> then
Eval::TypeTiny is currently using L<PadWalker> to provide aliases.
=item C<< IMPLEMENTATION_TIE >>
If C<< ALIAS_IMPLEMENTATION eq IMPLEMENTATION_TIE >> then Eval::TypeTiny is
using the fallback implementation of aliases using C<tie>. This is the
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Unix/Sudo.pm view on Meta::CPAN
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(sudo);
use B::Deparse;
use Data::Dumper;
use PadWalker qw(peek_my);
use Probe::Perl;
=head1 NAME
Unix::Sudo - Run a block of code as root
lib/Unix/Sudo.pm view on Meta::CPAN
bunch of C<-I> arguments, so that it knows about any directories in the parent
process's C<@INC>, and it will also get copies of all the lexical variables
that are in scope in the calling code.
Under the bonnet it uses L<B::Deparse> to turn your code-ref into text,
L<PadWalker>'s C<peek_my()> to get variables, and L<Data::Dumper> (and
C<$Data::Dumper::Deparse>) to turn those variables into text, all of which is
pre-pended to your code.
=head1 CAVEATS
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Util/EvalSnippet.pm view on Meta::CPAN
package Util::EvalSnippet;
use 5.020;
use strict;
use warnings;
use PadWalker qw(peek_my peek_our);
use File::Slurp qw(read_file);
use Cwd 'abs_path';
our $VERSION = '0.02';
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Var/Extract.pm view on Meta::CPAN
package Var::Extract;
use strict;
use warnings;
use PadWalker qw(var_name);
use base qw(Exporter);
our @EXPORT_OK = qw(vars_from_hash vars_from_getters);
our $VERSION = "0.02";
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Var/Pairs.pm view on Meta::CPAN
use warnings;
no if $] >= 5.018, warnings => "experimental::smartmatch";
use Carp;
use Devel::Callsite;
use Scope::Upper qw< reap UP >;
use PadWalker qw< var_name >;
# Check for autoboxing, and set up pairs() method if applicable..
my $autoboxing;
BEGIN {
if (eval{ require autobox }) {
lib/Var/Pairs.pm view on Meta::CPAN
=item Devel::Callsite
=item Data::Alias (under Perl 5.20 and earlier)
=item PadWalker
=back
To use the optional C<< $container->pairs >> syntax,
you also need the C<autobox> module.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Variable/Expand/AnyLevel.pm view on Meta::CPAN
use parent qw(Exporter);
use strict;
use warnings;
our $VERSION = '0.05';
our @EXPORT_OK = qw(expand_variable);
use PadWalker qw(peek_my);
=head1 NAME
Variable::Expand::AnyLevel - expand variables exist at any level.
lib/Variable/Expand/AnyLevel.pm view on Meta::CPAN
my $value2 = expand_variable('$value1', 0);
# $value2 is 'aaa';
=head1 DESCRIPTION
Variable::Expand::AnyLevel enables to expand variables which exist at any level. (level means same as Carp or PadWalker)
=cut
=head1 FUNCTIONS
lib/Variable/Expand/AnyLevel.pm view on Meta::CPAN
Takuya Tsuchida E<lt>tsucchi@cpan.orgE<gt>
=head1 SEE ALSO
L<PadWalker>
=head1 COPYRIGHT AND LICENSE
Copyright (c) 2011 Takuya Tsuchida
view all matches for this distribution
view release on metacpan or search on metacpan
t/data/all_ratings.csv view on Meta::CPAN
"package","1.0","4"
"Package-Constants","3.0","1"
"Package-Generator","4.0","1"
"Padre-Plugin-PerlTidy","4.0","1"
"Padre-Plugin-WebGUI","5.0","1"
"PadWalker","4.3","3"
"PApp","3.0","1"
"PApp-SQL","5.0","1"
"PAR","5.0","3"
"PAR-Packer","5.0","1"
"ParaDNS","5.0","1"
view all matches for this distribution
view release on metacpan or search on metacpan
lib/WWW/Workflowy.pm view on Meta::CPAN
package autobox::Closure::XAttributes::Methods;
use base 'autobox';
use B;
use PadWalker;
sub AUTOLOAD :lvalue {
my $code = shift;
(my $method = our $AUTOLOAD) =~ s/.*:://;
return if $method eq 'DESTROY';
# we want the scalar unless the method name already a sigil
my $attr = $method =~ /^[\$\@\%\&\*]/ ? $method : '$' . $method;
my $closed_over = PadWalker::closed_over($code);
# is there a method of that name in the package the coderef was created in?
# if so, run it.
# give methods priority over the variables we close over.
# XXX this isn't lvalue friendly, but sdw can't figure out how to make it be and not piss off old perls.
view all matches for this distribution
view release on metacpan or search on metacpan
cpanfile.snapshot view on Meta::CPAN
Data::Alias 0
Exporter::Tiny 0.026
ExtUtils::MakeMaker 6.17
Module::Runtime 0
Moo 1.003001
PadWalker 0
Parse::Keyword 0.06
Return::Type 0.004
Sub::Util 0
Type::Parser 0.032
Type::Registry 0.032
cpanfile.snapshot view on Meta::CPAN
requirements:
ExtUtils::MakeMaker 6.30
XSLoader 0
strict 0
warnings 0
PadWalker-2.2
pathname: R/RO/ROBIN/PadWalker-2.2.tar.gz
provides:
PadWalker 2.2
requirements:
ExtUtils::MakeMaker 0
perl 5.008001
Params-Util-1.07
pathname: A/AD/ADAMK/Params-Util-1.07.tar.gz
view all matches for this distribution
view release on metacpan or search on metacpan
Debian_CPANTS.txt view on Meta::CPAN
"libopenoffice-oodoc-perl", "OpenOffice-OODoc", "2.112", "0", "0"
"liborlite-migrate-perl", "ORLite-Migrate", "1.06", "0", "0"
"liborlite-mirror-perl", "ORLite-Mirror", "1.20", "0", "0"
"liborlite-perl", "ORLite", "1.39", "0", "2"
"liborlite-statistics-perl", "ORLite-Statistics", "0.03", "0", "0"
"libpadwalker-perl", "PadWalker", "1.9", "0", "0"
"libpalm-perl", "p5-Palm", "1.011", "0", "1"
"libpango-perl", "Pango", "1.221", "0", "1"
"libpar-dist-perl", "PAR-Dist", "0.45", "0", "0"
"libpar-packer-perl", "PAR-Packer", "1.002", "0", "3"
"libpar-perl", "PAR", "0.994", "0", "1"
view all matches for this distribution
view release on metacpan or search on metacpan
cpanfile.snapshot view on Meta::CPAN
requirements:
ExtUtils::MakeMaker 6.30
XSLoader 0
strict 0
warnings 0
PadWalker-1.98
pathname: R/RO/ROBIN/PadWalker-1.98.tar.gz
provides:
PadWalker 1.98
requirements:
ExtUtils::MakeMaker 0
perl 5.008001
Params-Util-1.07
pathname: A/AD/ADAMK/Params-Util-1.07.tar.gz
cpanfile.snapshot view on Meta::CPAN
Exporter 5.63
ExtUtils::CBuilder 0
Module::Build 0.38
Mouse 0.92
Mouse::Util::TypeConstraints 0
PadWalker 1.92
Scalar::Util 1.21
perl 5.008001
Spiffy-0.31
pathname: I/IN/INGY/Spiffy-0.31.tar.gz
provides:
view all matches for this distribution
view release on metacpan or search on metacpan
t/lib/Sub/Uplevel.pm view on Meta::CPAN
See http://www.perl.com/perl/misc/Artistic.html
=head1 SEE ALSO
PadWalker (for the similar idea with lexicals), Hook::LexWrap,
Tcl's uplevel() at http://www.scriptics.com/man/tcl8.4/TclCmd/uplevel.htm
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
local/lib/perl5/Eval/TypeTiny.pm view on Meta::CPAN
return;
}
{
sub IMPLEMENTATION_DEVEL_LEXALIAS () { 'Devel::LexAlias' }
sub IMPLEMENTATION_PADWALKER () { 'PadWalker' }
sub IMPLEMENTATION_TIE () { 'tie' }
sub IMPLEMENTATION_NATIVE () { 'perl' }
my $implementation;
local/lib/perl5/Eval/TypeTiny.pm view on Meta::CPAN
# uncoverable subroutine
sub ALIAS_IMPLEMENTATION () {
$implementation ||= _pick_alternative(
if => ( $] ge '5.022' ) => IMPLEMENTATION_NATIVE,
needs => 'Devel::LexAlias' => IMPLEMENTATION_DEVEL_LEXALIAS,
needs => 'PadWalker' => IMPLEMENTATION_PADWALKER,
if => !!1 => IMPLEMENTATION_TIE,
);
}
#>>>
local/lib/perl5/Eval/TypeTiny.pm view on Meta::CPAN
Devel::LexAlias::lexalias( $code, $_ => $args{environment}{$_} )
for grep !/^\&/, @keys;
}
if ( $alias and ALIAS_IMPLEMENTATION eq IMPLEMENTATION_PADWALKER ) {
require PadWalker;
my %env = map +( $_ => $args{environment}{$_} ), grep !/^\&/, @keys;
PadWalker::set_closed_over( $code, \%env );
}
return $code;
} #/ sub eval_closure
local/lib/perl5/Eval/TypeTiny.pm view on Meta::CPAN
Eval::TypeTiny is currently using L<Devel::LexAlias> to provide aliases.
=item C<< IMPLEMENTATION_PADWALKER >>
If C<< ALIAS_IMPLEMENTATION eq IMPLEMENTATION_PADWALKER >> then
Eval::TypeTiny is currently using L<PadWalker> to provide aliases.
=item C<< IMPLEMENTATION_TIE >>
If C<< ALIAS_IMPLEMENTATION eq IMPLEMENTATION_TIE >> then Eval::TypeTiny is
using the fallback implementation of aliases using C<tie>. This is the
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Zydeco.pm view on Meta::CPAN
$sig =~ s/^=\Q$ws$default//xs;
$sig =~ s/^((?&PerlOWS)) $GRAMMAR//xso;
if ($default =~ / \$ (?: class|self) /xso) {
require PadWalker;
$default = sprintf('do { my $invocants = PadWalker::peek_my(2)->{q[@invocants]}||PadWalker::peek_my(1)->{q[@invocants]}; my $self=$invocants->[-1]; my $class=ref($self)||$self; %s }', $default);
$parsed[-1]{default} = $default;
}
}
if ($sig) {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/autobox/Bless.pm view on Meta::CPAN
use Scalar::Util;
use Devel::Peek;
use Carp;
use Devel::Caller 'caller_cv'; # cx_type is 40 not CXt_SUB unless it's the current version
# use PadWalker;
# use B;
# could take one of three approaches; remember every field seen in every class; remember the top n closest matches as we go; take the first good match
# it's a memory vs accuracy tradeoff
# could also take a hybrid approach and if we don't find an exact match, look for a best match
view all matches for this distribution
view release on metacpan or search on metacpan
lib/autobox/Closure/Attributes.pm view on Meta::CPAN
sub import {
shift->SUPER::import(CODE => 'autobox::Closure::Attributes::Methods');
}
package autobox::Closure::Attributes::Methods;
use PadWalker;
sub AUTOLOAD {
my $code = shift;
(my $attr = our $AUTOLOAD) =~ s/.*:://;
# we want the scalar unless the method name already a sigil
$attr = "\$$attr" unless $attr =~ /^[\$\@\%\&\*]/;
my $closed_over = PadWalker::closed_over($code);
exists $closed_over->{$attr}
or Carp::croak "$code does not close over $attr";
my $ref = ref $closed_over->{$attr};
lib/autobox/Closure/Attributes.pm view on Meta::CPAN
Go ahead and read the source code of this, it's not very long.
L<autobox> lets you call methods on coderefs (or any other scalar).
L<PadWalker> will let you see and change the closed-over variables of a coderef
.
L<AUTOLOAD|perlsub/"Autoloading"> is really just an accessor. It's just harder
to manipulate the "attributes" of a closure-based object than it is for
hash-based objects.
lib/autobox/Closure/Attributes.pm view on Meta::CPAN
Shawn M Moore, C<sartak@gmail.com>
=head1 SEE ALSO
L<autobox>, L<PadWalker>
The L</DESCRIPTION> section is from Anton van Straaten: L<http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html>
=head1 BUGS
view all matches for this distribution
view release on metacpan or search on metacpan
lib/lexical/underscore.pm view on Meta::CPAN
BEGIN {
$lexical::underscore::AUTHORITY = 'cpan:TOBYINK';
$lexical::underscore::VERSION = '0.004';
}
use if ($] >= 5.009 && $] < 5.023), PadWalker => qw( peek_my );
BEGIN {
*peek_my = sub { +{} } unless __PACKAGE__->can('peek_my');
}
sub lexical::underscore
lib/lexical/underscore.pm view on Meta::CPAN
returns the global C<< $_ >>.
=head2 Technical Details
The C<lexical::underscore> function returns a scalar reference to either a
lexical C<< $_ >> variable somewhere up the call stack (using L<PadWalker>
magic), or to the global C<< $_ >> if there was no lexical version.
Wrapping C<lexical::underscore> in C<< ${ ... } >> dereferences the scalar
reference, allowing you to access (and even assign to) it.
lib/lexical/underscore.pm view on Meta::CPAN
Please report any bugs to
L<http://rt.cpan.org/Dist/Display.html?Queue=lexical-underscore>.
=head1 SEE ALSO
L<PadWalker>.
=head1 AUTHOR
Toby Inkster E<lt>tobyink@cpan.orgE<gt>.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/lexicals.pm view on Meta::CPAN
use strict; use warnings;
package lexicals;
our $VERSION = '0.35';
use PadWalker;
use base 'Exporter';
our @EXPORT = qw(lexicals);
sub lexicals {
my $hash = PadWalker::peek_my(1);
return +{
map {
my $v = $hash->{$_};
$v = $$v if ref($v) =~ m'^(SCALAR|REF)$';
s/^[\$\@\%\*]//;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/opts.pm view on Meta::CPAN
package opts;
use strict;
use warnings;
our $VERSION = '0.08';
use Exporter 'import';
use PadWalker qw/var_name/;
use Getopt::Long;
use Carp ();
our @EXPORT = qw/opts/;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/B/Deparse.pm view on Meta::CPAN
=item *
Lexical (my) variables declared in scopes external to a subroutine
appear in coderef2text output text as package variables. This is a tricky
problem, as perl has no native facility for referring to a lexical variable
defined within a different scope, although L<PadWalker> is a good start.
See also L<Data::Dump::Streamer>, which combines B::Deparse and
L<PadWalker> to serialize closures properly.
=item *
There are probably many more bugs on non-ASCII platforms (EBCDIC).
view all matches for this distribution