perl
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
#if defined(WIN32) || !defined(PERL_STRICT_CR)
case '\r':
#endif
case '\n':
case '\t':
break;
#ifdef ALTERNATE_SHEBANG
case 'S': /* OS/2 needs -S on "extproc" line. */
break;
#endif
case 'e': case 'f': case 'x': case 'E':
#ifndef ALTERNATE_SHEBANG
case 'S':
#endif
case 'V':
Perl_croak(aTHX_ "Can't emulate -%.1s on #! line",s);
default:
Perl_croak(aTHX_
"Unrecognized switch: -%.1s (-h will show valid options)",s
);
}
return NULL;
}
STATIC void
S_minus_v(pTHX)
{
PerlIO * PIO_stdout;
{
const char * const level_str = "v" PERL_VERSION_STRING;
const STRLEN level_len = sizeof("v" PERL_VERSION_STRING)-1;
#ifdef PERL_PATCHNUM
SV* level;
# ifdef PERL_GIT_UNCOMMITTED_CHANGES
static const char num [] = PERL_PATCHNUM "*";
# else
static const char num [] = PERL_PATCHNUM;
# endif
{
const STRLEN num_len = sizeof(num)-1;
/* A very advanced compiler would fold away the strnEQ
and this whole conditional, but most (all?) won't do it.
SV level could also be replaced by with preprocessor
catenation.
*/
if (num_len >= level_len && strnEQ(num,level_str,level_len)) {
/* per 46807d8e80, PERL_PATCHNUM is outside of the control
of the interp so it might contain format characters
*/
level = newSVpvn(num, num_len);
} else {
level = Perl_newSVpvf_nocontext("%s (%s)", level_str, num);
}
}
#else
SV* level = newSVpvn(level_str, level_len);
#endif /* #ifdef PERL_PATCHNUM */
PIO_stdout = PerlIO_stdout();
PerlIO_printf(PIO_stdout,
"\nThis is perl " STRINGIFY(PERL_REVISION)
", version " STRINGIFY(PERL_VERSION)
", subversion " STRINGIFY(PERL_SUBVERSION)
" (%" SVf ") built for " ARCHNAME, SVfARG(level)
);
SvREFCNT_dec_NN(level);
}
#if defined(LOCAL_PATCH_COUNT)
if (LOCAL_PATCH_COUNT > 0)
PerlIO_printf(PIO_stdout,
"\n(with %d registered patch%s, "
"see perl -V for more detail)",
LOCAL_PATCH_COUNT,
(LOCAL_PATCH_COUNT!=1) ? "es" : "");
#endif
PerlIO_printf(PIO_stdout,
"\n\nCopyright 1987-2023, Larry Wall\n");
#ifdef OS2
PerlIO_printf(PIO_stdout,
"\n\nOS/2 port Copyright (c) 1990, 1991, Raymond Chen, Kai Uwe Rommel\n"
"Version 5 port Copyright (c) 1994-2002, Andreas Kaiser, Ilya Zakharevich\n");
#endif
#ifdef OEMVS
PerlIO_printf(PIO_stdout,
"MVS (OS390) port by Mortice Kern Systems, 1997-1999\n");
#endif
#ifdef __VOS__
PerlIO_printf(PIO_stdout,
"Stratus OpenVOS port by Paul.Green@stratus.com, 1997-2013\n");
#endif
#ifdef POSIX_BC
PerlIO_printf(PIO_stdout,
"BS2000 (POSIX) port by Start Amadeus GmbH, 1998-1999\n");
#endif
#ifdef BINARY_BUILD_NOTICE
BINARY_BUILD_NOTICE;
#endif
PerlIO_printf(PIO_stdout,
"\n\
Perl may be copied only under the terms of either the Artistic License or the\n\
GNU General Public License, which may be found in the Perl 5 source kit.\n\n\
Complete documentation for Perl, including FAQ lists, should be found on\n\
this system using \"man perl\" or \"perldoc perl\". If you have access to the\n\
Internet, point your browser at https://www.perl.org/, the Perl Home Page.\n\n");
my_exit(0);
}
/* compliments of Tom Christiansen */
/* unexec() can be found in the Gnu emacs distribution */
/* Known to work with -DUNEXEC and using unexelf.c from GNU emacs-20.2 */
#ifdef VMS
#include <lib$routines.h>
#endif
void
Perl_my_unexec(pTHX)
{
#ifdef UNEXEC
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.469 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )