PrefixedHandleRedirect.pm 569 B

1234567891011121314151617181920212223242526272829303132333435
  1. package NIC::Tie::PrefixedHandleRedirect;
  2. use strict;
  3. use parent qw(Tie::Handle);
  4. sub TIEHANDLE {
  5. my $proto = shift;
  6. my $fh = shift;
  7. my $prefix = shift;
  8. return bless [$fh, $prefix], $proto;
  9. }
  10. sub _token {
  11. return "[".$_[0]->[1]."] ";
  12. }
  13. sub PRINT {
  14. my $t = $_[0]->_token;
  15. my $fh = $_[0]->[0];
  16. shift;
  17. my $str = $t.join('', @_);
  18. $str =~ s#$/+$##g;
  19. $str =~ s#$/#$/$t#g;
  20. print $fh $str,$/;
  21. }
  22. sub PRINTF {
  23. my $t = $_[0]->_token;
  24. my $fh = $_[0]->[0];
  25. shift;
  26. my $str = $t.sprintf(shift, @_);
  27. $str =~ s#$/+$##g;
  28. $str =~ s#$/#$/$t#g;
  29. print $fh $str,$/;
  30. }
  31. 1;