$51 GRAYBYTE WORDPRESS FILE MANAGER $55

SERVER : in-mum-web1330.main-hosting.eu #1 SMP Mon Feb 10 22:45:17 UTC 2025
SERVER IP : 88.222.243.47 | ADMIN IP 216.73.216.215
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/usr/share/perl5/

HOME
Current File : /usr/share/perl5//vmsish.pm
package vmsish;

our $VERSION = '1.04';

=head1 NAME

vmsish - Perl pragma to control VMS-specific language features

=head1 SYNOPSIS

    use vmsish;

    use vmsish 'status';	# or '$?'
    use vmsish 'exit';
    use vmsish 'time';

    use vmsish 'hushed';
    no vmsish 'hushed';
    vmsish::hushed($hush);

    use vmsish;
    no vmsish 'time';

=head1 DESCRIPTION

If no import list is supplied, all possible VMS-specific features are
assumed.  Currently, there are four VMS-specific features available:
'status' (a.k.a '$?'), 'exit', 'time' and 'hushed'.

If you're not running VMS, this module does nothing.

=over 6

=item C<vmsish status>

This makes C<$?> and C<system> return the native VMS exit status
instead of emulating the POSIX exit status.

=item C<vmsish exit>

This makes C<exit 1> produce a successful exit (with status SS$_NORMAL),
instead of emulating UNIX exit(), which considers C<exit 1> to indicate
an error.  As with the CRTL's exit() function, C<exit 0> is also mapped
to an exit status of SS$_NORMAL, and any other argument to exit() is
used directly as Perl's exit status.

=item C<vmsish time>

This makes all times relative to the local time zone, instead of the
default of Universal Time (a.k.a Greenwich Mean Time, or GMT).

=item C<vmsish hushed>

This suppresses printing of VMS status messages to SYS$OUTPUT and
SYS$ERROR if Perl terminates with an error status, and allows
programs that are expecting "unix-style" Perl to avoid having to parse
VMS error messages.  It does not suppress any messages from Perl
itself, just the messages generated by DCL after Perl exits.  The DCL
symbol $STATUS will still have the termination status, but with a
high-order bit set:

EXAMPLE:
    $ perl -e"exit 44;"                          Non-hushed error exit
    %SYSTEM-F-ABORT, abort                       DCL message
    $ show sym $STATUS
      $STATUS == "%X0000002C"

    $ perl -e"use vmsish qw(hushed); exit 44;"   Hushed error exit
    $ show sym $STATUS
      $STATUS == "%X1000002C"

The 'hushed' flag has a global scope during compilation: the exit() or
die() commands that are compiled after 'vmsish hushed' will be hushed
when they are executed.  Doing a "no vmsish 'hushed'" turns off the
hushed flag.

The status of the hushed flag also affects output of VMS error
messages from compilation errors.   Again, you still get the Perl
error message (and the code in $STATUS)

EXAMPLE:
    use vmsish 'hushed';    # turn on hushed flag
    use Carp;          # Carp compiled hushed
    exit 44;           # will be hushed
    croak('I die');    # will be hushed
    no vmsish 'hushed';     # turn off hushed flag
    exit 44;           # will not be hushed
    croak('I die2'):   # WILL be hushed, croak was compiled hushed

You can also control the 'hushed' flag at run-time, using the built-in
routine vmsish::hushed().  Without argument, it returns the hushed status.
Since vmsish::hushed is built-in, you do not need to "use vmsish" to call
it.

EXAMPLE:
    if ($quiet_exit) {
        vmsish::hushed(1);
    } 
    print "Sssshhhh...I'm hushed...\n" if vmsish::hushed();
    exit 44;

Note that an exit() or die() that is compiled 'hushed' because of "use
vmsish" is not un-hushed by calling vmsish::hushed(0) at runtime.

The messages from error exits from inside the Perl core are generally
more serious, and are not suppressed.

=back

See L<perlmod/Perl Modules>.

=cut

my $IsVMS = $^O eq 'VMS';

sub bits {
    my $bits = 0;
    my $sememe;
    foreach $sememe (@_) {
	# Those hints are defined in vms/vmsish.h :
	# HINT_M_VMSISH_STATUS and HINT_M_VMSISH_TIME
        $bits |= 0x40000000, next if $sememe eq 'status' || $sememe eq '$?';
	$bits |= 0x80000000, next if $sememe eq 'time';
    }
    $bits;
}

sub import {
    return unless $IsVMS;

    shift;
    $^H |= bits(@_ ? @_ : qw(status time));
    my $sememe;

    foreach $sememe (@_ ? @_ : qw(exit hushed)) {
        $^H{'vmsish_exit'}   = 1 if $sememe eq 'exit';
        vmsish::hushed(1) if $sememe eq 'hushed';
    }
}

sub unimport {
    return unless $IsVMS;

    shift;
    $^H &= ~ bits(@_ ? @_ : qw(status time));
    my $sememe;

    foreach $sememe (@_ ? @_ : qw(exit hushed)) {
        $^H{'vmsish_exit'}   = 0 if $sememe eq 'exit';
        vmsish::hushed(0) if $sememe eq 'hushed';
    }
}

1;

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
15 Mar 2026 11.23 AM
root / root
0755
B
--
25 Jan 2024 4.24 PM
root / root
0755
Class
--
25 Jan 2024 4.24 PM
root / root
0755
Config
--
25 Jan 2024 4.24 PM
root / root
0755
DBM_Filter
--
25 Jan 2024 4.24 PM
root / root
0755
ExtUtils
--
25 Jan 2024 4.24 PM
root / root
0755
File
--
25 Jan 2024 4.24 PM
root / root
0755
Getopt
--
25 Jan 2024 4.24 PM
root / root
0755
I18N
--
25 Jan 2024 4.24 PM
root / root
0755
IPC
--
25 Jan 2024 4.24 PM
root / root
0755
Math
--
25 Jan 2024 5.01 PM
root / root
0755
Net
--
25 Jan 2024 4.24 PM
root / root
0755
Pod
--
25 Jan 2024 4.24 PM
root / root
0755
Search
--
25 Jan 2024 4.24 PM
root / root
0755
Term
--
25 Jan 2024 4.24 PM
root / root
0755
Text
--
25 Jan 2024 4.24 PM
root / root
0755
Thread
--
25 Jan 2024 4.24 PM
root / root
0755
Tie
--
25 Jan 2024 4.24 PM
root / root
0755
Time
--
25 Jan 2024 4.24 PM
root / root
0755
URI
--
25 Jan 2024 2.16 PM
root / root
0755
Unicode
--
25 Jan 2024 4.24 PM
root / root
0755
User
--
25 Jan 2024 4.24 PM
root / root
0755
encoding
--
25 Jan 2024 4.24 PM
root / root
0755
overload
--
25 Jan 2024 4.24 PM
root / root
0755
pod
--
25 Jan 2024 4.24 PM
root / root
0755
unicore
--
25 Jan 2024 4.24 PM
root / root
0755
vendor_perl
--
28 Feb 2025 12.46 AM
root / root
0755
warnings
--
25 Jan 2024 4.24 PM
root / root
0755
AnyDBM_File.pm
2.557 KB
18 May 2023 9.34 PM
root / root
0644
AutoLoader.pm
15.427 KB
18 May 2023 9.34 PM
root / root
0644
AutoSplit.pm
19.177 KB
18 May 2023 9.34 PM
root / root
0644
Benchmark.pm
30.298 KB
18 May 2023 9.34 PM
root / root
0644
CORE.pod
3.113 KB
18 May 2023 9.34 PM
root / root
0644
DB.pm
18.479 KB
18 May 2023 9.34 PM
root / root
0644
DBM_Filter.pm
14.048 KB
18 May 2023 9.34 PM
root / root
0644
DirHandle.pm
1.52 KB
18 May 2023 9.34 PM
root / root
0644
Dumpvalue.pm
17.145 KB
18 May 2023 9.34 PM
root / root
0644
English.pm
4.649 KB
18 May 2023 9.34 PM
root / root
0644
FileCache.pm
5.441 KB
18 May 2023 9.34 PM
root / root
0644
FileHandle.pm
6.625 KB
18 May 2023 9.34 PM
root / root
0644
FindBin.pm
4.454 KB
18 May 2023 9.34 PM
root / root
0644
Internals.pod
2.516 KB
18 May 2023 9.34 PM
root / root
0644
NEXT.pm
18.404 KB
18 May 2023 9.34 PM
root / root
0644
PerlIO.pm
10.214 KB
18 May 2023 9.34 PM
root / root
0644
Safe.pm
24.494 KB
18 May 2023 9.34 PM
root / root
0644
SelectSaver.pm
1.051 KB
18 May 2023 9.34 PM
root / root
0644
Symbol.pm
4.687 KB
18 May 2023 9.34 PM
root / root
0644
Thread.pm
8.093 KB
18 May 2023 9.34 PM
root / root
0644
UNIVERSAL.pm
6.439 KB
18 May 2023 9.34 PM
root / root
0644
URI.pm
33.975 KB
9 Jan 2018 6.42 AM
root / root
0644
XSLoader.pm
11.003 KB
18 May 2023 9.34 PM
root / root
0644
_charnames.pm
32.389 KB
18 May 2023 9.34 PM
root / root
0644
autouse.pm
4.139 KB
18 May 2023 9.34 PM
root / root
0644
base.pm
10.723 KB
18 May 2023 9.34 PM
root / root
0644
blib.pm
2.037 KB
18 May 2023 9.34 PM
root / root
0644
bytes.pm
3.666 KB
18 May 2023 9.34 PM
root / root
0644
bytes_heavy.pl
0.74 KB
18 May 2023 9.34 PM
root / root
0644
charnames.pm
20.378 KB
18 May 2023 9.34 PM
root / root
0644
deprecate.pm
3.007 KB
18 May 2023 9.34 PM
root / root
0644
diagnostics.pm
18.592 KB
18 May 2023 9.34 PM
root / root
0644
dumpvar.pl
15.19 KB
18 May 2023 9.34 PM
root / root
0644
feature.pm
16.685 KB
18 May 2023 9.34 PM
root / root
0644
fields.pm
9.267 KB
18 May 2023 9.34 PM
root / root
0644
filetest.pm
3.909 KB
18 May 2023 9.34 PM
root / root
0644
if.pm
3.262 KB
18 May 2023 9.34 PM
root / root
0644
integer.pm
3.178 KB
18 May 2023 9.34 PM
root / root
0644
less.pm
3.129 KB
18 May 2023 9.34 PM
root / root
0644
locale.pm
4.741 KB
18 May 2023 9.34 PM
root / root
0644
meta_notation.pm
2.067 KB
18 May 2023 9.34 PM
root / root
0644
overload.pm
52.064 KB
18 May 2023 9.34 PM
root / root
0644
overloading.pm
1.766 KB
18 May 2023 9.34 PM
root / root
0644
perl5db.pl
309.004 KB
18 May 2023 9.34 PM
root / root
0644
sigtrap.pm
7.428 KB
18 May 2023 9.34 PM
root / root
0644
sort.pm
5.938 KB
18 May 2023 9.34 PM
root / root
0644
strict.pm
4.627 KB
18 May 2023 9.34 PM
root / root
0644
subs.pm
0.828 KB
18 May 2023 9.34 PM
root / root
0644
utf8.pm
8.902 KB
18 May 2023 9.34 PM
root / root
0644
utf8_heavy.pl
30.874 KB
18 May 2023 9.34 PM
root / root
0644
vars.pm
2.357 KB
18 May 2023 9.34 PM
root / root
0644
vmsish.pm
4.212 KB
18 May 2023 9.34 PM
root / root
0644
warnings.pm
43.707 KB
18 May 2023 9.34 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF