home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / perl5 / Debconf / Template / Transient.pm
Encoding:
Perl POD Document  |  2006-07-24  |  1.1 KB  |  72 lines

  1. #!/usr/bin/perl -w
  2. # This file was preprocessed, do not edit!
  3.  
  4.  
  5. package Debconf::Template::Transient;
  6. use strict;
  7. use POSIX;
  8. use base 'Debconf::Template';
  9. use fields qw(_fields);
  10.  
  11.  
  12.  
  13. sub new {
  14.     my $this=shift;
  15.     my $template=shift;
  16.     
  17.     unless (ref $this) {
  18.         $this = fields::new($this);
  19.     }
  20.     $this->{template}=$template;
  21.     $this->{_fields}={};
  22.     return $this;
  23. }
  24.  
  25.  
  26. sub get {
  27.     die "get not supported on transient templates";
  28. }
  29.  
  30.  
  31. sub fields {
  32.     my $this=shift;
  33.  
  34.     return keys %{$this->{_fields}};
  35. }
  36.  
  37.                 
  38. sub clearall {
  39.     my $this=shift;
  40.  
  41.     foreach my $field (keys %{$this->{_fields}}) {
  42.         delete $this->{_fields}->{$field};
  43.     }
  44. }
  45.  
  46.  
  47. {
  48.     my @langs=Debconf::Template::_getlangs();
  49.  
  50.     sub AUTOLOAD {
  51.         (my $field = our $AUTOLOAD) =~ s/.*://;
  52.         no strict 'refs';
  53.         *$AUTOLOAD = sub {
  54.             my $this=shift;
  55.  
  56.             return $this->{_fields}->{$field}=shift if @_;
  57.         
  58.             if ($Debconf::Template::i18n && @langs) {
  59.                 foreach my $lang (@langs) {
  60.                     return $this->{_fields}->{$field.'-'.lc($lang)}
  61.                         if exists $this->{_fields}->{$field.'-'.lc($lang)};
  62.                 }
  63.             }
  64.             return $this->{_fields}->{$field};
  65.         };
  66.         goto &$AUTOLOAD;
  67.     }
  68. }
  69.  
  70.  
  71. 1
  72.