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 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
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. |
=head1 NAME perlpragma - how to write a user pragma =head1 DESCRIPTION A pragma is a module which influences some aspect of the compile time or run time behaviour of Perl, such as C<strict> or C<warnings>. With Perl 5.10 you are no longer limited to the built in pragmata; you can now create user pragmata that modify the behaviour of user functions within a lexical scope. =head1 A basic example For example, say you need to create a class implementing overloaded mathematical operators, and would like to provide your own pragma that functions much like C<use integer;> You'd like this code use MyMaths; my $l = MyMaths->new(1.2); my $r = MyMaths->new(3.4); print "A: ", $l + $r, "\n"; use myint; print "B: ", $l + $r, "\n"; { no myint; print "C: ", $l + $r, "\n"; } print "D: ", $l + $r, "\n"; no myint; print "E: ", $l + $r, "\n"; to give the output A: 4.6 B: 4 C: 4.6 D: 4 E: 4.6 I<i.e.>, where C<use myint;> is in effect, addition operations are forced to integer, whereas by default they are not, with the default behaviour being restored via C<no myint;> The minimal implementation of the package C<MyMaths> would be something like this: package MyMaths; use warnings; use strict; use myint(); use overload '+' => sub { my ($l, $r) = @_; # Pass 1 to check up one call level from here if (myint::in_effect(1)) { int($$l) + int($$r); } else { $$l + $$r; } }; sub new { my ($class, $value) = @_; bless \$value, $class; } 1; Note how we load the user pragma C<myint> with an empty list C<()> to prevent its C<import> being called. The interaction with the Perl compilation happens inside package C<myint>: package myint; use strict; use warnings; sub import { $^H{"myint/in_effect"} = 1; } sub unimport { $^H{"myint/in_effect"} = 0; } sub in_effect { my $level = shift // 0; my $hinthash = (caller($level))[10]; return $hinthash->{"myint/in_effect"}; } 1; As pragmata are implemented as modules, like any other module, C<use myint;> becomes BEGIN { require myint; myint->import(); } and C<no myint;> is BEGIN { require myint; myint->unimport(); } Hence the C<import> and C<unimport> routines are called at B<compile time> for the user's code. User pragmata store their state by writing to the magical hash C<%^H>, hence these two routines manipulate it. The state information in C<%^H> is stored in the optree, and can be retrieved read-only at runtime with C<caller()>, at index 10 of the list of returned results. In the example pragma, retrieval is encapsulated into the routine C<in_effect()>, which takes as parameter the number of call frames to go up to find the value of the pragma in the user's script. This uses C<caller()> to determine the value of C<$^H{"myint/in_effect"}> when each line of the user's script was called, and therefore provide the correct semantics in the subroutine implementing the overloaded addition. =head1 Key naming There is only a single C<%^H>, but arbitrarily many modules that want to use its scoping semantics. To avoid stepping on each other's toes, they need to be sure to use different keys in the hash. It is therefore conventional for a module to use only keys that begin with the module's name (the name of its main package) and a "/" character. After this module-identifying prefix, the rest of the key is entirely up to the module: it may include any characters whatsoever. For example, a module C<Foo::Bar> should use keys such as C<Foo::Bar/baz> and C<Foo::Bar/$%/_!>. Modules following this convention all play nicely with each other. The Perl core uses a handful of keys in C<%^H> which do not follow this convention, because they predate it. Keys that follow the convention won't conflict with the core's historical keys. =head1 Implementation details The optree is shared between threads. This means there is a possibility that the optree will outlive the particular thread (and therefore the interpreter instance) that created it, so true Perl scalars cannot be stored in the optree. Instead a compact form is used, which can only store values that are integers (signed and unsigned), strings or C<undef> - references and floating point values are stringified. If you need to store multiple values or complex structures, you should serialise them, for example with C<pack>. The deletion of a hash key from C<%^H> is recorded, and as ever can be distinguished from the existence of a key with value C<undef> with C<exists>. B<Don't> attempt to store references to data structures as integers which are retrieved via C<caller> and converted back, as this will not be threadsafe. Accesses would be to the structure without locking (which is not safe for Perl's scalars), and either the structure has to leak, or it has to be freed when its creating thread terminates, which may be before the optree referencing it is deleted, if other threads outlive it.
SILENT KILLER Tool