Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. package Audit{
  2. use Data::Dump q/pp/;
  3. use Filter::Simple;
  4.  
  5. our %Log;
  6.  
  7. sub audit{
  8. my($name, $value) = @_;
  9. $value = "undef" if !defined($value);
  10. if($Log{$name}){
  11. push @{$Log{$name}}, $value;
  12. }
  13. else{
  14. $Log{$name} = [$value];
  15. }
  16. }
  17.  
  18. sub clear_log{
  19. %Log = ();
  20. }
  21.  
  22. sub print_log{
  23. for my $key (keys %Log){
  24. print "$key: " . join(", ", @{$Log{$key}}) . "\n";
  25. }
  26. }
  27.  
  28. sub pretty_print_log{
  29. for my $key (keys %Log){
  30. print "$key: " . join(", ", map{ pp $_ } @{$Log{$key}}) . "\n";
  31. }
  32. }
  33.  
  34. FILTER_ONLY code => sub{
  35. s|((\$[[:alnum:]_]*).*;)|$1 Audit::audit('$2', $2);|g;
  36. }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement