| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | package POE::Callstack; | 
| 2 |  |  |  |  |  |  |  | 
| 3 | 110 |  |  | 110 |  | 892 | use base 'Exporter'; | 
|  | 110 |  |  |  |  | 221 |  | 
|  | 110 |  |  |  |  | 31298 |  | 
| 4 |  |  |  |  |  |  |  | 
| 5 |  |  |  |  |  |  | @EXPORT_OK = qw(PUSH POP PEEK CURRENT_SESSION CURRENT_EVENT); | 
| 6 |  |  |  |  |  |  |  | 
| 7 |  |  |  |  |  |  | my @stack; | 
| 8 |  |  |  |  |  |  |  | 
| 9 |  |  |  |  |  |  | sub PUSH { | 
| 10 | 977 |  |  | 977 |  | 1940 | my ($session, $event) = @_; | 
| 11 |  |  |  |  |  |  |  | 
| 12 | 977 |  |  |  |  | 7355 | push @stack, [$session, $event]; | 
| 13 |  |  |  |  |  |  | } | 
| 14 |  |  |  |  |  |  |  | 
| 15 |  |  |  |  |  |  | sub POP	{ | 
| 16 | 767 |  |  | 767 |  | 362433 | my $return = pop @stack; | 
| 17 | 767 |  |  |  |  | 3090 | return @$return; | 
| 18 |  |  |  |  |  |  | } | 
| 19 |  |  |  |  |  |  |  | 
| 20 |  |  |  |  |  |  | sub PEEK { | 
| 21 | 0 |  |  | 0 | 0 | 0 | return $stack[-1]; | 
| 22 |  |  |  |  |  |  | } | 
| 23 |  |  |  |  |  |  |  | 
| 24 |  |  |  |  |  |  | sub CURRENT_SESSION { | 
| 25 | 1124 |  |  | 1124 | 0 | 165361 | return $stack[-1]->[0]; | 
| 26 |  |  |  |  |  |  | } | 
| 27 |  |  |  |  |  |  |  | 
| 28 |  |  |  |  |  |  | sub CURRENT_EVENT { | 
| 29 | 0 |  |  | 0 | 0 | 0 | return $stack[-1]->[1]; | 
| 30 |  |  |  |  |  |  | } | 
| 31 |  |  |  |  |  |  |  | 
| 32 |  |  |  |  |  |  | sub CLEAN { | 
| 33 | 87 | 50 |  | 87 | 0 | 321 | die if @stack; | 
| 34 |  |  |  |  |  |  | } | 
| 35 |  |  |  |  |  |  |  | 
| 36 |  |  |  |  |  |  | 1; |