SILENT KILLERPanel

Current Path: > > usr > share > perl5 > pod >


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //usr/share/perl5/pod/

NameTypeSizeLast ModifiedActions
perl.pod File 16270 bytes July 28 2025 08:07:09.
perl5004delta.pod File 56240 bytes July 28 2025 08:07:09.
perl5005delta.pod File 34283 bytes July 28 2025 08:07:09.
perl5100delta.pod File 55535 bytes July 28 2025 08:07:09.
perl5101delta.pod File 43888 bytes July 28 2025 08:07:09.
perl5120delta.pod File 89272 bytes July 28 2025 08:07:09.
perl5121delta.pod File 10141 bytes July 28 2025 08:07:09.
perl5122delta.pod File 9603 bytes July 28 2025 08:07:09.
perl5123delta.pod File 4100 bytes July 28 2025 08:07:09.
perl5124delta.pod File 3672 bytes July 28 2025 08:07:09.
perl5125delta.pod File 7683 bytes July 28 2025 08:07:09.
perl5140delta.pod File 144324 bytes July 28 2025 08:07:09.
perl5141delta.pod File 7966 bytes July 28 2025 08:07:09.
perl5142delta.pod File 6892 bytes July 28 2025 08:07:09.
perl5143delta.pod File 7760 bytes July 28 2025 08:07:09.
perl5144delta.pod File 6327 bytes July 28 2025 08:07:09.
perl5160delta.pod File 133651 bytes July 28 2025 08:07:09.
perl5161delta.pod File 6142 bytes July 28 2025 08:07:09.
perl5162delta.pod File 3594 bytes July 28 2025 08:07:09.
perl5163delta.pod File 4085 bytes July 28 2025 08:07:09.
perl5180delta.pod File 119431 bytes July 28 2025 08:07:09.
perl5181delta.pod File 6595 bytes July 28 2025 08:07:09.
perl5182delta.pod File 5335 bytes July 28 2025 08:07:09.
perl5184delta.pod File 4642 bytes July 28 2025 08:07:09.
perl5200delta.pod File 115699 bytes July 28 2025 08:07:09.
perl5201delta.pod File 10899 bytes July 28 2025 08:07:09.
perl5202delta.pod File 12509 bytes July 28 2025 08:07:09.
perl5203delta.pod File 9392 bytes July 28 2025 08:07:09.
perl5220delta.pod File 130963 bytes July 28 2025 08:07:09.
perl5221delta.pod File 10767 bytes July 28 2025 08:07:09.
perl5222delta.pod File 12629 bytes July 28 2025 08:07:09.
perl5223delta.pod File 8456 bytes July 28 2025 08:07:09.
perl5224delta.pod File 4460 bytes July 28 2025 08:07:09.
perl5240delta.pod File 64927 bytes July 28 2025 08:07:09.
perl5241delta.pod File 8215 bytes July 28 2025 08:07:09.
perl5242delta.pod File 4113 bytes July 28 2025 08:07:09.
perl5243delta.pod File 11428 bytes July 28 2025 08:07:09.
perl5244delta.pod File 4510 bytes July 28 2025 08:07:09.
perl5260delta.pod File 101836 bytes July 28 2025 08:07:09.
perl5261delta.pod File 7927 bytes July 28 2025 08:07:09.
perl5262delta.pod File 7880 bytes July 28 2025 08:07:09.
perl5263delta.pod File 7063 bytes July 28 2025 08:07:09.
perl5280delta.pod File 72113 bytes July 28 2025 08:07:09.
perl561delta.pod File 124713 bytes July 28 2025 08:07:09.
perl56delta.pod File 107201 bytes July 28 2025 08:07:09.
perl581delta.pod File 38061 bytes July 28 2025 08:07:09.
perl582delta.pod File 4470 bytes July 28 2025 08:07:09.
perl583delta.pod File 6335 bytes July 28 2025 08:07:09.
perl584delta.pod File 7363 bytes July 28 2025 08:07:09.
perl585delta.pod File 5889 bytes July 28 2025 08:07:09.
perl586delta.pod File 4651 bytes July 28 2025 08:07:09.
perl587delta.pod File 8357 bytes July 28 2025 08:07:09.
perl588delta.pod File 25272 bytes July 28 2025 08:07:09.
perl589delta.pod File 53900 bytes July 28 2025 08:07:09.
perl58delta.pod File 115165 bytes July 28 2025 08:07:09.
perlaix.pod File 20437 bytes July 28 2025 08:07:09.
perlamiga.pod File 5749 bytes July 28 2025 08:07:09.
perlandroid.pod File 7871 bytes July 28 2025 08:07:09.
perlapi.pod File 443535 bytes July 28 2025 08:07:09.
perlapio.pod File 19285 bytes July 28 2025 08:07:09.
perlartistic.pod File 7010 bytes July 28 2025 08:07:09.
perlbook.pod File 8338 bytes July 28 2025 08:07:09.
perlboot.pod File 294 bytes July 28 2025 08:07:09.
perlbot.pod File 304 bytes July 28 2025 08:07:09.
perlbs2000.pod File 8058 bytes July 28 2025 08:07:09.
perlcall.pod File 56706 bytes July 28 2025 08:07:09.
perlce.pod File 14602 bytes July 28 2025 08:07:09.
perlcheat.pod File 4481 bytes July 28 2025 08:07:09.
perlclib.pod File 9619 bytes July 28 2025 08:07:09.
perlcn.pod File 4691 bytes July 28 2025 08:07:09.
perlcommunity.pod File 7217 bytes July 28 2025 08:07:09.
perlcygwin.pod File 27199 bytes July 28 2025 08:07:09.
perldata.pod File 46743 bytes July 28 2025 08:07:09.
perldbmfilter.pod File 4981 bytes July 28 2025 08:07:09.
perldebguts.pod File 38535 bytes July 28 2025 08:07:09.
perldebtut.pod File 22152 bytes July 28 2025 08:07:09.
perldebug.pod File 39258 bytes July 28 2025 08:07:09.
perldelta.pod File 7063 bytes July 28 2025 08:07:09.
perldeprecation.pod File 18169 bytes July 28 2025 08:07:09.
perldiag.pod File 284572 bytes July 28 2025 08:07:09.
perldos.pod File 10522 bytes July 28 2025 08:07:09.
perldsc.pod File 25614 bytes July 28 2025 08:07:09.
perldtrace.pod File 7958 bytes July 28 2025 08:07:09.
perlebcdic.pod File 84233 bytes July 28 2025 08:07:09.
perlembed.pod File 37196 bytes July 28 2025 08:07:09.
perlexperiment.pod File 7195 bytes July 28 2025 08:07:09.
perlfork.pod File 13355 bytes July 28 2025 08:07:09.
perlform.pod File 16608 bytes July 28 2025 08:07:09.
perlfreebsd.pod File 1610 bytes July 28 2025 08:07:09.
perlfunc.pod File 392957 bytes July 28 2025 08:07:09.
perlgit.pod File 33509 bytes July 28 2025 08:07:09.
perlgpl.pod File 13815 bytes July 28 2025 08:07:09.
perlguts.pod File 139329 bytes July 28 2025 08:07:09.
perlhack.pod File 40445 bytes July 28 2025 08:07:09.
perlhacktips.pod File 55509 bytes July 28 2025 08:07:09.
perlhacktut.pod File 6153 bytes July 28 2025 08:07:09.
perlhaiku.pod File 1508 bytes July 28 2025 08:07:09.
perlhist.pod File 53546 bytes July 28 2025 08:07:09.
perlhpux.pod File 30509 bytes July 28 2025 08:07:09.
perlhurd.pod File 1993 bytes July 28 2025 08:07:09.
perlintern.pod File 54572 bytes July 28 2025 08:07:09.
perlinterp.pod File 33687 bytes July 28 2025 08:07:09.
perlintro.pod File 22119 bytes July 28 2025 08:07:09.
perliol.pod File 34185 bytes July 28 2025 08:07:09.
perlipc.pod File 70829 bytes July 28 2025 08:07:09.
perlirix.pod File 4395 bytes July 28 2025 08:07:09.
perljp.pod File 7521 bytes July 28 2025 08:07:09.
perlko.pod File 12259 bytes July 28 2025 08:07:09.
perllexwarn.pod File 355 bytes July 28 2025 08:07:09.
perllinux.pod File 1488 bytes July 28 2025 08:07:09.
perllocale.pod File 68678 bytes July 28 2025 08:07:09.
perllol.pod File 9580 bytes July 28 2025 08:07:09.
perlmacos.pod File 1001 bytes July 28 2025 08:07:09.
perlmacosx.pod File 12060 bytes July 28 2025 08:07:09.
perlmod.pod File 26250 bytes July 28 2025 08:07:09.
perlmodinstall.pod File 12792 bytes July 28 2025 08:07:09.
perlmodlib.pod File 76482 bytes July 28 2025 08:07:09.
perlmodstyle.pod File 22575 bytes July 28 2025 08:07:09.
perlmroapi.pod File 3212 bytes July 28 2025 08:07:09.
perlnetware.pod File 6648 bytes July 28 2025 08:07:09.
perlnewmod.pod File 11036 bytes July 28 2025 08:07:09.
perlnumber.pod File 8353 bytes July 28 2025 08:07:09.
perlobj.pod File 35537 bytes July 28 2025 08:07:09.
perlootut.pod File 26783 bytes July 28 2025 08:07:09.
perlop.pod File 136252 bytes July 28 2025 08:07:09.
perlopenbsd.pod File 1204 bytes July 28 2025 08:07:09.
perlopentut.pod File 9455 bytes July 28 2025 08:07:09.
perlos2.pod File 93351 bytes July 28 2025 08:07:09.
perlos390.pod File 15674 bytes July 28 2025 08:07:09.
perlos400.pod File 4768 bytes July 28 2025 08:07:09.
perlpacktut.pod File 51282 bytes July 28 2025 08:07:09.
perlperf.pod File 49881 bytes July 28 2025 08:07:09.
perlplan9.pod File 5125 bytes July 28 2025 08:07:09.
perlpod.pod File 22196 bytes July 28 2025 08:07:09.
perlpodspec.pod File 68476 bytes July 28 2025 08:07:09.
perlpolicy.pod File 25629 bytes July 28 2025 08:07:09.
perlport.pod File 87602 bytes July 28 2025 08:07:09.
perlpragma.pod File 5176 bytes July 28 2025 08:07:09.
perlqnx.pod File 6673 bytes July 28 2025 08:07:09.
perlre.pod File 120901 bytes July 28 2025 08:07:09.
perlreapi.pod File 30334 bytes July 28 2025 08:07:09.
perlrebackslash.pod File 31817 bytes July 28 2025 08:07:09.
perlrecharclass.pod File 49029 bytes July 28 2025 08:07:09.
perlref.pod File 35304 bytes July 28 2025 08:07:09.
perlreftut.pod File 18790 bytes July 28 2025 08:07:09.
perlreguts.pod File 38328 bytes July 28 2025 08:07:09.
perlrepository.pod File 509 bytes July 28 2025 08:07:09.
perlrequick.pod File 18497 bytes July 28 2025 08:07:09.
perlreref.pod File 14744 bytes July 28 2025 08:07:09.
perlretut.pod File 121257 bytes July 28 2025 08:07:09.
perlriscos.pod File 1529 bytes July 28 2025 08:07:09.
perlrun.pod File 53550 bytes July 28 2025 08:07:09.
perlsec.pod File 26184 bytes July 28 2025 08:07:09.
perlsolaris.pod File 29822 bytes July 28 2025 08:07:09.
perlsource.pod File 6876 bytes July 28 2025 08:07:09.
perlstyle.pod File 8630 bytes July 28 2025 08:07:09.
perlsub.pod File 72967 bytes July 28 2025 08:07:09.
perlsymbian.pod File 15359 bytes July 28 2025 08:07:09.
perlsyn.pod File 44512 bytes July 28 2025 08:07:09.
perlsynology.pod File 7778 bytes July 28 2025 08:07:09.
perlthrtut.pod File 46459 bytes July 28 2025 08:07:09.
perltie.pod File 38607 bytes July 28 2025 08:07:09.
perltoc.pod File 694171 bytes July 28 2025 08:07:09.
perltodo.pod File 376 bytes July 28 2025 08:07:09.
perltooc.pod File 294 bytes July 28 2025 08:07:09.
perltoot.pod File 294 bytes July 28 2025 08:07:09.
perltrap.pod File 10620 bytes July 28 2025 08:07:09.
perltru64.pod File 8492 bytes July 28 2025 08:07:09.
perltw.pod File 4477 bytes July 28 2025 08:07:09.
perlunicode.pod File 82491 bytes July 28 2025 08:07:09.
perlunicook.pod File 25488 bytes July 28 2025 08:07:09.
perlunifaq.pod File 13647 bytes July 28 2025 08:07:09.
perluniintro.pod File 38340 bytes July 28 2025 08:07:09.
perluniprops.pod File 285306 bytes July 28 2025 08:07:09.
perlunitut.pod File 7951 bytes July 28 2025 08:07:09.
perlutil.pod File 7640 bytes July 28 2025 08:08:32.
perlvar.pod File 78364 bytes July 28 2025 08:07:09.
perlvms.pod File 50823 bytes July 28 2025 08:07:09.
perlvos.pod File 3843 bytes July 28 2025 08:07:09.
perlwin32.pod File 39298 bytes July 28 2025 08:07:09.
perlxs.pod File 78920 bytes July 28 2025 08:07:09.
perlxstut.pod File 50095 bytes July 28 2025 08:07:09.
perlxstypemap.pod File 24001 bytes July 28 2025 08:07:09.

Reading File: //usr/share/perl5/pod//perlopentut.pod

=encoding utf8

=head1 NAME

perlopentut - simple recipes for opening files and pipes in Perl

=head1 DESCRIPTION

Whenever you do I/O on a file in Perl, you do so through what in Perl is
called a B<filehandle>.  A filehandle is an internal name for an external
file.  It is the job of the C<open> function to make the association
between the internal name and the external name, and it is the job
of the C<close> function to break that association.

For your convenience, Perl sets up a few special filehandles that are
already open when you run.  These include C<STDIN>, C<STDOUT>, C<STDERR>,
and C<ARGV>.  Since those are pre-opened, you can use them right away
without having to go to the trouble of opening them yourself:

    print STDERR "This is a debugging message.\n";

    print STDOUT "Please enter something: ";
    $response = <STDIN> // die "how come no input?";
    print STDOUT "Thank you!\n";

    while (<ARGV>) { ... }

As you see from those examples, C<STDOUT> and C<STDERR> are output
handles, and C<STDIN> and C<ARGV> are input handles.  They are
in all capital letters because they are reserved to Perl, much
like the C<@ARGV> array and the C<%ENV> hash are.  Their external
associations were set up by your shell.

You will need to open every other filehandle on your own. Although there
are many variants, the most common way to call Perl's open() function
is with three arguments and one return value:

C<    I<OK> = open(I<HANDLE>, I<MODE>, I<PATHNAME>)>

Where:

=over

=item I<OK>

will be some defined value if the open succeeds, but
C<undef> if it fails;

=item I<HANDLE>

should be an undefined scalar variable to be filled in by the
C<open> function if it succeeds;

=item I<MODE>

is the access mode and the encoding format to open the file with;

=item I<PATHNAME>

is the external name of the file you want opened.

=back

Most of the complexity of the C<open> function lies in the many
possible values that the I<MODE> parameter can take on.

One last thing before we show you how to open files: opening
files does not (usually) automatically lock them in Perl.  See
L<perlfaq5> for how to lock.

=head1 Opening Text Files

=head2 Opening Text Files for Reading

If you want to read from a text file, first open it in
read-only mode like this:

    my $filename = "/some/path/to/a/textfile/goes/here";
    my $encoding = ":encoding(UTF-8)";
    my $handle   = undef;     # this will be filled in on success

    open($handle, "< $encoding", $filename)
        || die "$0: can't open $filename for reading: $!";

As with the shell, in Perl the C<< "<" >> is used to open the file in
read-only mode.  If it succeeds, Perl allocates a brand new filehandle for
you and fills in your previously undefined C<$handle> argument with a
reference to that handle.

Now you may use functions like C<readline>, C<read>, C<getc>, and
C<sysread> on that handle.  Probably the most common input function
is the one that looks like an operator:

    $line = readline($handle);
    $line = <$handle>;          # same thing

Because the C<readline> function returns C<undef> at end of file or
upon error, you will sometimes see it used this way:

    $line = <$handle>;
    if (defined $line) {
        # do something with $line
    }
    else {
        # $line is not valid, so skip it
    }

You can also just quickly C<die> on an undefined value this way:

    $line = <$handle> // die "no input found";

However, if hitting EOF is an expected and normal event, you do not want to
exit simply because you have run out of input.  Instead, you probably just want
to exit an input loop.  You can then test to see if an actual error has caused
the loop to terminate, and act accordingly:

    while (<$handle>) {
        # do something with data in $_
    }
    if ($!) {
        die "unexpected error while reading from $filename: $!";
    }

B<A Note on Encodings>: Having to specify the text encoding every time
might seem a bit of a bother.  To set up a default encoding for C<open> so
that you don't have to supply it each time, you can use the C<open> pragma:

    use open qw< :encoding(UTF-8) >;

Once you've done that, you can safely omit the encoding part of the
open mode:

    open($handle, "<", $filename)
        || die "$0: can't open $filename for reading: $!";

But never use the bare C<< "<" >> without having set up a default encoding
first.  Otherwise, Perl cannot know which of the many, many, many possible
flavors of text file you have, and Perl will have no idea how to correctly
map the data in your file into actual characters it can work with.  Other
common encoding formats including C<"ASCII">, C<"ISO-8859-1">,
C<"ISO-8859-15">, C<"Windows-1252">, C<"MacRoman">, and even C<"UTF-16LE">.
See L<perlunitut> for more about encodings.

=head2 Opening Text Files for Writing

When you want to write to a file, you first have to decide what to do about
any existing contents of that file.  You have two basic choices here: to
preserve or to clobber.

If you want to preserve any existing contents, then you want to open the file
in append mode.  As in the shell, in Perl you use C<<< ">>" >>> to open an
existing file in append mode.  C<<< ">>" >>> creates the file if it does not
already exist.

    my $handle   = undef;
    my $filename = "/some/path/to/a/textfile/goes/here";
    my $encoding = ":encoding(UTF-8)";

    open($handle, ">> $encoding", $filename)
        || die "$0: can't open $filename for appending: $!";

Now you can write to that filehandle using any of C<print>, C<printf>,
C<say>, C<write>, or C<syswrite>.

As noted above, if the file does not already exist, then the append-mode open
will create it for you.  But if the file does already exist, its contents are
safe from harm because you will be adding your new text past the end of the
old text.

On the other hand, sometimes you want to clobber whatever might already be
there.  To empty out a file before you start writing to it, you can open it
in write-only mode:

    my $handle   = undef;
    my $filename = "/some/path/to/a/textfile/goes/here";
    my $encoding = ":encoding(UTF-8)";

    open($handle, "> $encoding", $filename)
        || die "$0: can't open $filename in write-open mode: $!";

Here again Perl works just like the shell in that the C<< ">" >> clobbers
an existing file.

As with the append mode, when you open a file in write-only mode,
you can now write to that filehandle using any of C<print>, C<printf>,
C<say>, C<write>, or C<syswrite>.

What about read-write mode?  You should probably pretend it doesn't exist,
because opening text files in read-write mode is unlikely to do what you
would like.  See L<perlfaq5> for details.

=head1 Opening Binary Files

If the file to be opened contains binary data instead of text characters,
then the C<MODE> argument to C<open> is a little different.  Instead of
specifying the encoding, you tell Perl that your data are in raw bytes.

    my $filename = "/some/path/to/a/binary/file/goes/here";
    my $encoding = ":raw :bytes"
    my $handle   = undef;     # this will be filled in on success

And then open as before, choosing C<<< "<" >>>, C<<< ">>" >>>, or
C<<< ">" >>> as needed:

    open($handle, "< $encoding", $filename)
        || die "$0: can't open $filename for reading: $!";

    open($handle, ">> $encoding", $filename)
        || die "$0: can't open $filename for appending: $!";

    open($handle, "> $encoding", $filename)
        || die "$0: can't open $filename in write-open mode: $!";

Alternately, you can change to binary mode on an existing handle this way:

    binmode($handle)    || die "cannot binmode handle";

This is especially handy for the handles that Perl has already opened for you.

    binmode(STDIN)      || die "cannot binmode STDIN";
    binmode(STDOUT)     || die "cannot binmode STDOUT";

You can also pass C<binmode> an explicit encoding to change it on the fly.
This isn't exactly "binary" mode, but we still use C<binmode> to do it:

  binmode(STDIN,  ":encoding(MacRoman)") || die "cannot binmode STDIN";
  binmode(STDOUT, ":encoding(UTF-8)")    || die "cannot binmode STDOUT";

Once you have your binary file properly opened in the right mode, you can
use all the same Perl I/O functions as you used on text files.  However,
you may wish to use the fixed-size C<read> instead of the variable-sized
C<readline> for your input.

Here's an example of how to copy a binary file:

    my $BUFSIZ   = 64 * (2 ** 10);
    my $name_in  = "/some/input/file";
    my $name_out = "/some/output/flie";

    my($in_fh, $out_fh, $buffer);

    open($in_fh,  "<", $name_in)
        || die "$0: cannot open $name_in for reading: $!";
    open($out_fh, ">", $name_out)
        || die "$0: cannot open $name_out for writing: $!";

    for my $fh ($in_fh, $out_fh)  {
        binmode($fh)               || die "binmode failed";
    }

    while (read($in_fh, $buffer, $BUFSIZ)) {
        unless (print $out_fh $buffer) {
            die "couldn't write to $name_out: $!";
        }
    }

    close($in_fh)       || die "couldn't close $name_in: $!";
    close($out_fh)      || die "couldn't close $name_out: $!";

=head1 Opening Pipes

To be announced.

=head1 Low-level File Opens via sysopen

To be announced.  Or deleted.

=head1 SEE ALSO

To be announced.

=head1 AUTHOR and COPYRIGHT

Copyright 2013 Tom Christiansen.

This documentation is free; you can redistribute it and/or modify it under
the same terms as Perl itself.


SILENT KILLER Tool