POD2-RU
view release on metacpan or search on metacpan
lib/POD2/RU/perldebug.pod view on Meta::CPAN
When the C<frame> option is set, the debugger would print entered (and
optionally exited) subroutines in different styles. See L<perldebguts>
for incredibly long examples of these.
=back
=head2 Debugging Compile-Time Statements
If you have compile-time executable statements (such as code within
BEGIN, UNITCHECK and CHECK blocks or C<use> statements), these will
I<not> be stopped by debugger, although C<require>s and INIT blocks
will, and compile-time statements can be traced with the C<AutoTrace>
option set in C<PERLDB_OPTS>). From your own Perl code, however, you
can transfer control back to the debugger using the following
statement, which is harmless if the debugger is not running:
$DB::single = 1;
If you set C<$DB::single> to 2, it's equivalent to having
just typed the C<n> command, whereas a value of 1 means the C<s>
lib/POD2/RU/perlfunc.pod view on Meta::CPAN
C<gmtime>, C<localtime>, C<time>, C<times>
=item Non-function keywords
=for Pod::Functions =!Non-functions
C<and>, C<AUTOLOAD>, C<BEGIN>, C<CHECK>, C<cmp>, C<CORE>, C<__DATA__>,
C<default>, C<DESTROY>, C<else>, C<elseif>, C<elsif>, C<END>, C<__END__>,
C<eq>, C<for>, C<foreach>, C<ge>, C<given>, C<gt>, C<if>, C<INIT>, C<le>,
C<lt>, C<ne>, C<not>, C<or>, C<UNITCHECK>, C<unless>, C<until>, C<when>,
C<while>, C<x>, C<xor>
=back
=head2 Portability
X<portability> X<Unix> X<portable>
Perl was born in Unix and can therefore access all common Unix
system calls. In non-Unix environments, the functionality of some
Unix system calls may not be available or details of the available
lib/POD2/RU/perlfunc.pod view on Meta::CPAN
=item shift
=for Pod::Functions remove the first element of an array, and return it
Shifts the first value of the array off and returns it, shortening the
array by 1 and moving everything down. If there are no elements in the
array, returns the undefined value. If ARRAY is omitted, shifts the
C<@_> array within the lexical scope of subroutines and formats, and the
C<@ARGV> array outside a subroutine and also within the lexical scopes
established by the C<eval STRING>, C<BEGIN {}>, C<INIT {}>, C<CHECK {}>,
C<UNITCHECK {}>, and C<END {}> constructs.
Starting with Perl 5.14, C<shift> can take a scalar EXPR, which must hold a
reference to an unblessed array. The argument will be dereferenced
automatically. This aspect of C<shift> is considered highly experimental.
The exact behaviour may change in a future version of Perl.
To avoid confusing would-be users of your code who are running earlier
versions of Perl with mysterious syntax errors, put this sort of thing at
the top of your file to signal that your code will work I<only> on Perls of
a recent vintage:
lib/POD2/RU/perlfunc.pod view on Meta::CPAN
Returns true if the context of the currently executing subroutine or
C<eval> is looking for a list value. Returns false if the context is
looking for a scalar. Returns the undefined value if the context is
looking for no value (void context).
return unless defined wantarray; # don't bother doing more
my @a = complex_calculation();
return wantarray ? @a : "@a";
C<wantarray()>'s result is unspecified in the top level of a file,
in a C<BEGIN>, C<UNITCHECK>, C<CHECK>, C<INIT> or C<END> block, or
in a C<DESTROY> method.
This function should have been named wantlist() instead.
=item warn LIST
X<warn> X<warning> X<STDERR>
=for Pod::Functions print debugging info
Prints the value of LIST to STDERR. If the last element of LIST does
lib/POD2/RU/perlfunc.pod view on Meta::CPAN
=over
=item BEGIN
=item CHECK
=item END
=item INIT
=item UNITCHECK
These compile phase keywords are documented in L<perlmod/"BEGIN, UNITCHECK, CHECK, INIT and END">.
=back
=head3 perlobj
=over
=item DESTROY
This method keyword is documented in L<perlobj/"Destructors">.
lib/POD2/RU/perlmod.pod view on Meta::CPAN
in main: $name is 'barney'
вмеÑÑо:
in Some_package: $name is 'fred'
ÐÑо Ñакже Ð¸Ð¼ÐµÐµÑ Ð¿Ð¾ÑледÑÑÐ²Ð¸Ñ Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ SUPER:: квалиÑикаÑоÑ
(См. L<perlobj>).
=head2 BEGIN, UNITCHECK, CHECK, INIT и END
X<BEGIN> X<UNITCHECK> X<CHECK> X<INIT> X<END>
СÑÑеÑÑвÑÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² ÑпеÑиалÑно именованного кода, коÑоÑÑе вÑполнÑÑÑÑÑ Ð² наÑале и в
в конÑе ÑабоÑаÑÑей пÑогÑÐ°Ð¼Ð¼Ñ Perl. ÐÑо блоки C<BEGIN>,
C<UNITCHECK>, C<CHECK>, C<INIT>, и C<END>.
ÐÑи блоки кода могÑÑ Ð±ÑÑÑ Ð¿ÑеÑикÑом C<sub>, ÑÑо даÑÑ Ð²Ð½ÐµÑний вид
подпÑогÑÐ°Ð¼Ð¼Ñ (Ñ
оÑÑ ÑÑо не ÑÑиÑаеÑÑÑ Ñ
оÑоÑим ÑÑилем). СледÑÐµÑ Ð¾ÑмеÑиÑÑ
ÑÑо ÑÑи блоки кода в дейÑÑвиÑелÑноÑÑи не ÑÑÑеÑÑвÑÑÑ ÐºÐ°Ðº именованнÑе подпÑогÑÐ°Ð¼Ð¼Ñ (неÑмоÑÑÑ Ð½Ð°
иÑ
внеÑний вид). ÐÑи блоки даÑÑ ÑакÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе имеÑÑ
B<более, Ñем один> Ñакой блок кода в пÑогÑамме, и они
B<вÑе> бÑдÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ñ Ð² ÑооÑвеÑÑÑвÑÑÑий моменÑ.
Таким обÑазом Ð²Ñ Ð½Ðµ можеÑе вÑполнÑÑÑ Ð»Ñбой из
ÑÑиÑ
блоков кода по имени.
lib/POD2/RU/perlmod.pod view on Meta::CPAN
Ñо они бÑдÑÑ Ð²ÑполнÑÑÑÑÑ Ñак же, как лÑбой дÑÑгой C<END> блок пакеÑного кода
в поÑÑдке LIFO ÑÑÐ°Ð·Ñ Ð¿ÐµÑед Ñем, как инÑеÑпÑеÑаÑÐ¾Ñ Ð±ÑÐ´ÐµÑ Ð²ÑÑ
одиÑÑ (just before the interpreter is being exited).
ÐнÑÑÑи блока C<END>, C<$?> ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°Ñение, коÑоÑÑе пÑогÑамма
ÑобиÑаеÑÑÑ Ð¿ÐµÑедаÑÑ C<exit()>. ÐÑ Ð¼Ð¾Ð¶ÐµÑе измениÑÑ C<$?>, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð²ÑÑ
одное (exit
value of the program) знаÑение пÑогÑаммÑ. ÐÑÑеÑегайÑеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ C<$?> ÑлÑÑайно (напÑимеÑ, запÑÑк Ñего-Ñо ÑеÑез C<system>).
X<$?>
ÐнÑÑÑи блока C<END>, знаÑение C<${^GLOBAL_PHASE}> бÑÐ´ÐµÑ C<"END">.
Ðлоки кода C<UNITCHECK>, C<CHECK> и C<INIT> ÑвлÑÑÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñми Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð¹Ð¼Ð°ÑÑ
пеÑеÑ
од Ð¼ÐµÐ¶Ð´Ñ Ñазой компилÑÑии и Ñазой вÑполнениÑ
оÑновной пÑогÑаммÑ(execution phase of the main program).
Ðлоки C<UNITCHECK> вÑполнÑÑÑÑÑ ÑолÑко поÑле Ñого, как ÑниÑ, опÑеделеннÑй им бÑÐ´ÐµÑ Ð¾ÑкомпилиÑован.
Файл оÑновной пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ каждÑй загÑÑжаемÑй ей модÑÐ»Ñ - ÑÑо
единиÑÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑии, Ñакие как ÑÑÑока C<eval>s, во вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´ компилиÑÑеÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ
конÑÑÑÑкÑии C<(?{ })> в ÑегекÑе, вÑзова C<do FILE>, C<require FILE>,
и кода поÑле клÑÑа C<-e> командной ÑÑÑоки.
Ðлоки C<BEGIN> и C<UNITCHECK> не ÑвÑÐ·Ð°Ð½Ñ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно Ñазами
инÑеÑпÑеÑаÑоÑа Perl. Ðни могÑÑ Ð±ÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð¸ вÑполнÑÑÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð»Ñбой ÑазÑ.
Ðлоки кода C<CHECK> вÑполнÑÑÑÑÑ ÑолÑко поÑле ÑÐ°Ð·Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ B<наÑалÑной> компилÑÑии Perl
и до наÑала вÑемени вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ (run time), в поÑÑдке LIFO. Ðлоки кода C<CHECK> иÑполÑзÑÑÑÑÑ
в комплекÑе компилÑÑоÑа Perl (Perl compiler suite) Ð´Ð»Ñ ÑоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑкомпилиÑованного ÑоÑÑоÑÐ½Ð¸Ñ Ð¿ÑогÑаммÑ.
ÐнÑÑÑи блока C<CHECK>, знаÑение пеÑеменной C<${^GLOBAL_PHASE}> бÑÐ´ÐµÑ C<"CHECK">.
Ðлоки C<INIT> вÑполнÑÑÑÑÑ ÑÑÐ°Ð·Ñ Ð¿ÐµÑед наÑалом вÑемени вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Perl (Perl runtime begins execution),
в поÑледоваÑелÑноÑÑи "пеÑвÑй воÑел, пеÑвÑй вÑÑл" (FIFO).
lib/POD2/RU/perlmod.pod view on Meta::CPAN
ÐÑогÑамма B<begincheck> показÑÐ²Ð°ÐµÑ ÑÑно ÑÑо поведение, в конеÑном ÑÑеÑе:
#!/usr/bin/perl
# begincheck
print "10. Ordinary code runs at runtime.\n";
END { print "16. So this is the end of the tale.\n" }
INIT { print " 7. INIT blocks run FIFO just before runtime.\n" }
UNITCHECK {
print " 4. And therefore before any CHECK blocks.\n"
}
CHECK { print " 6. So this is the sixth line.\n" }
print "11. It runs in order, of course.\n";
BEGIN { print " 1. BEGIN blocks run FIFO during compilation.\n" }
END { print "15. Read perlmod for the rest of the story.\n" }
CHECK { print " 5. CHECK blocks run LIFO after all compilation.\n" }
INIT { print " 8. Run this again, using Perl's -c switch.\n" }
print "12. This is anti-obfuscated code.\n";
END { print "14. END blocks run LIFO at quitting time.\n" }
BEGIN { print " 2. So this line comes out second.\n" }
UNITCHECK {
print " 3. UNITCHECK blocks run LIFO after each file is compiled.\n"
}
INIT { print " 9. You'll see the difference right away.\n" }
print "13. It merely _looks_ like it should be confusing.\n";
__END__
#!/usr/bin/perl
# begincheck_ru
print "10. ÐбÑÑнÑй код, ÑабоÑаÑÑий во вÑÐµÐ¼Ñ Ð²ÑполнениÑ.\n";
END { print "16. Так ÑÑо ÑÑо ÐºÐ¾Ð½ÐµÑ Ñказки.\n" }
INIT { print " 7. Ðлоки INIT запÑÑкаÑÑ FIFO непоÑÑедÑÑвенно пеÑед ÑанÑаймом (runtime).\n" }
UNITCHECK {
print " 4. РпоÑÑÐ¾Ð¼Ñ Ð¿ÐµÑед лÑбÑм блоком CHECK.\n"
}
CHECK { print " 6. Так ÑÑо ÑÑо ÑеÑÑÐ°Ñ ÑÑÑока.\n" }
print "11. Ðна вÑполнÑеÑÑÑ Ð¿Ð¾ÑледоваÑелÑно, конеÑно.\n";
BEGIN { print " 1. BEGIN блоки запÑÑкаÑÑÑÑ FIFO во вÑÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑии.\n" }
END { print "15. ЧиÑайÑе perlmod Ð´Ð»Ñ Ð¾ÑÑалÑной ÑаÑÑи ÑаÑÑказа.\n" }
CHECK { print " 5. CHECK блоки запÑÑкаÑÑÑÑ LIFO поÑле вÑей компилÑÑии.\n" }
INIT { print " 8. ÐапÑÑÑиÑÑ ÑÑо Ñнова, иÑполÑзÑÑ ÐºÐ»ÑÑ Perl -c.\n" }
print "12. ÐÑо анÑи запÑÑаннÑй код.\n";
END { print "14. END блоки запÑÑкаÑÑÑÑ LIFO во вÑÐµÐ¼Ñ Ð²Ñемени вÑÑ
Ð¾Ð´Ñ Ð¸Ð· пÑогÑаммÑ.\n" }
BEGIN { print " 2. Так ÑÑо ÑÑа Ð»Ð¸Ð½Ð¸Ñ Ð²ÑÑ
Ð¾Ð´Ð¸Ñ Ð²ÑоÑой.\n" }
UNITCHECK {
print " 3. UNITCHECK блоки запÑÑкаÑÑÑÑ LIFO поÑле Ñого, как каждÑй Ñайл оÑкомпилиÑÑеÑÑÑ.\n"
}
INIT { print " 9. ÐÑ ÑÑÐ°Ð·Ñ ÑвидиÑе ÑазниÑÑ.\n" }
print "13. ÐÑо пÑоÑÑо _вÑглÑдиÑ_ Ñак, как она должна бÑÑÑ Ð·Ð°Ð¿ÑÑаннÑм. (It merely _looks_ like it should be confusing.)\n";
__END__
=head2 Perl ÐлаÑÑÑ
X<class> X<@ISA>
lib/POD2/RU/perlrun.pod view on Meta::CPAN
(Ð Perl ÑанÑÑе, Ñем 5.8.1 B<-C> пеÑеклÑÑаÑÐµÐ»Ñ Ð±Ñл ÑолÑко Win32-пеÑеклÑÑаÑелÑ, коÑоÑÑй вклÑÑен иÑполÑзование ÑникодовÑÑ
"ÑиÑокий ÑиÑÑемнÑй вÑзов" Wi...
ÐÑа ÑÑнкÑÐ¸Ñ Ð¿ÑакÑиÑеÑки не иÑполÑзÑеÑÑÑ, однако, и паÑамеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки, поÑÑÐ¾Ð¼Ñ Ð±Ñл "оÑпÑавлен в ведÑо" ( "recycled").)
B <Note:> ÐаÑинаÑÑ perl 5.10.1, еÑли опÑÐ¸Ñ B<-C> иÑполÑзÑеÑÑÑ Ð½Ð° ÑÑÑоке C<#!>, Ñо он должен бÑÑÑ Ñказан в командной ÑÑÑоке, а, Ñак как ÑÑандаÑÑнÑе поÑоки...
ÐÑ Ñакже можеÑе иÑполÑзоваÑÑ binmode(), ÑÑÐ¾Ð±Ñ ÑÑÑановиÑÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð¿Ð¾Ñока ввода/вÑвода.
=item B<-c>
X<-c>
вÑзÑÐ²Ð°ÐµÑ Perl Ð´Ð»Ñ Ð¿ÑовеÑки ÑинÑакÑиÑа пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ поÑледÑÑÑего вÑÑ
ода без вÑполнениÑ. Ðа Ñамом деле, ÑÑа опÑÐ¸Ñ I<бÑдеÑ> вÑполнÑÑÑ Ð¸ C<BEGIN>, C<U...
=item B<-d>
X<-d> X<-dt>
=item B<-dt>
запÑÑÐºÐ°ÐµÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¿Ð¾Ð´ ÑпÑавлением оÑладÑика Perl. См. L<perldebug>.
ÐÑли B<t> Ñказан, Ñо он ÑказÑÐ²Ð°ÐµÑ Ð¾ÑладÑикÑ, ÑÑо поÑок(threads) бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² коде, коÑоÑÑй оÑлаживаеÑÑÑ.
=item B<-d:>I<MOD[=bar,baz]>
( run in 1.175 second using v1.01-cache-2.11-cpan-748bfb374f4 )