.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Aspect::Pointcut::Highest 3pm" .TH Aspect::Pointcut::Highest 3pm "2023-07-02" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Aspect::Pointcut::Highest \- Pointcut for preventing recursive matching .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Aspect; \& \& # High\-level creation \& my $pointcut1 = highest; \& \& # Manual creation \& my $pointcut2 = Aspect::Pointcut::Highest\->new; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" For aspects including timers and other Aspect::Advice::Around\-based advice, recursion can be significant problem. .PP The \f(CW\*(C`highest\*(C'\fR pointcut solves this problem by matching only on the highest invocation of a function. If the function is called again recursively within the first call, at any depth, the deeper calls will be not match and the advice will not be executed. .SH "AUTHORS" .IX Header "AUTHORS" Adam Kennedy .PP Marcel GrĂ¼nauer .PP Ran Eilam .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2001 by Marcel GrĂ¼nauer .PP Some parts copyright 2009 \- 2013 Adam Kennedy. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.