perl
view release on metacpan or search on metacpan
but Perl source knows it as NV. (This is not "long doubles".)
=head3 Taint Support
Traditional perl has provided a security mechanism based on marking
input data as untrusted unless it has been validated by a regex. This
mechanism is called tainting and is enabled with the -T or -t options on
the command line. This support has a performance cost on all code
executed. It is possible to disable this support by providing the
setting C<-Accflags=-DNO_TAINT_SUPPORT> or the setting
C<-Accflags=-DSILENT_NO_TAINT_SUPPORT> to Configure.
The former option C<NO_TAINT_SUPPORT> is more secure and disables taint
support while making the use of the C<-T> or C<-t> options which
normally enable taint support into an untrappable exception to ensure
that no-one uses them while expecting taint checks to run. With this
build mode there can be no confusion if a script supports taint or not.
The latter option, C<SILENT_NO_TAINT_SUPPORT> is less secure but more
flexible in that it silently disables taint support while ignoring the
C<-T> and C<-t> command line options entirely. In this build mode it is
cpan/Module-Metadata/t/taint.t view on Meta::CPAN
#!/usr/bin/perl -T
use strict;
use warnings;
use Config;
use Test::More $Config{ccflags} =~ /-DSILENT_NO_TAINT_SUPPORT/
? ( skip_all => 'No taint support' ) : ( tests => 2 );
use Module::Metadata;
use Carp 'croak';
# stolen liberally from Class-Tiny/t/lib/TestUtils.pm - thanks xdg!
sub exception(&) {
my $code = shift;
my $success = eval { $code->(); 1 };
my $err = $@;
return undef if $success; # original returned ''
/* Don't compile 'code' if PERL_MEM_LOG is defined. This is used for
* constructs that don't play well when PERL_MEM_LOG is active, so that they
* automatically don't get compiled without having to use extra #ifdef's */
#ifndef PERL_MEM_LOG
# define UNLESS_PERL_MEM_LOG(code) code
#else
# define UNLESS_PERL_MEM_LOG(code)
#endif
/* By compiling a perl with -DNO_TAINT_SUPPORT or -DSILENT_NO_TAINT_SUPPORT,
* you get a perl without taint support, but doubtlessly with a lesser
* degree of support. Do not do so unless you know exactly what it means
* technically, have a good reason to do so, and know exactly how the
* perl will be used. perls with -DSILENT_NO_TAINT_SUPPORT are considered
* a potential security risk due to flat out ignoring the security-relevant
* taint flags. This being said, a perl without taint support compiled in
* has marginal run-time performance benefits.
* SILENT_NO_TAINT_SUPPORT implies NO_TAINT_SUPPORT.
* SILENT_NO_TAINT_SUPPORT is the same as NO_TAINT_SUPPORT except it
* silently ignores -t/-T instead of throwing an exception.
*
* DANGER! Using NO_TAINT_SUPPORT or SILENT_NO_TAINT_SUPPORT
* voids your nonexistent warranty!
*/
( run in 3.069 seconds using v1.01-cache-2.11-cpan-4e7a2411597 )