This file is indexed.

/usr/share/perl5/Text/German/Endung.pm is in libtext-german-perl 0.06-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#                              -*- Mode: Perl -*- 
# Endung.pm -- 
# Author          : Ulrich Pfeifer
# Created On      : Thu Feb  1 09:10:48 1996
# Last Modified By: Ulrich Pfeifer
# Last Modified On: Sun Apr  3 12:16:20 2005
# Language        : Perl
# Update Count    : 45
# Status          : Unknown, Use with caution!

package Text::German::Endung;
# require Exporter;
# @ISA = qw(Exporter);
# @EXPORT = qw(%ENDUNG);

use Text::German::Util;
{
  local ($_);
  
  while (<DATA>) {
    chomp;
    my ($endung, $key) = split;
    my ($a,$b,$c,$d) = split ':', $key; # $c, $d nicht verwedet?
    my $B = Text::German::Util::bit_to_int($b);
    $ENDUNG{$endung} = [$a,$B,$c,$d];
  }
  close DATA;
}

sub endungen {
  my $word  = shift;
  my $class = wordclass($word);
  my @result;
  
  for $i (1 .. length($word)) {
    my $endung = substr($word, length($word)-$i,$i);
    if (defined $ENDUNG{$endung} && defined $ENDUNG{$endung}->[1]
        and ($ENDUNG{$endung}->[1] & $class)) {
      push @result, $endung;
    }
  }
  @result;
}

sub max_endung {
  my $word   = shift;
  my $class  = wordclass($word);
  my $result = undef;
  
  for $i (1 .. length($word)) {
    my $endung = substr($word, length($word)-$i,$i);
    if (defined $ENDUNG{$endung}
        and ($ENDUNG{$endung}->[1] & $class)) {
      $result = $endung
        if !defined($result) || length($endung) > length($result);
      
    }
  }
  $result;
}

sub wort_klasse {
  my $endung = shift;
  
  $ENDUNG{$endung}->[1];
}

sub regel {
  my $endung = shift;
  
  $ENDUNG{$endung}->[0];
}

1;
#       regel
#           wortklassen
#                     nachfolgeregel
__DATA__
e	001:11100:000:000
em	004:00100:000:000
en	002:11101:000:010
end	003:00010:000:011
ende	037:00010:001:047
endem	039:00010:004:049
enden	038:00010:002:048
ender	040:00010:005:050
endere	057:00010:092:067
enderem	059:00010:094:069
enderen	058:00010:093:068
enderer	060:00010:095:070
enderes	061:00010:096:071
endes	041:00010:007:051
endste	077:00010:102:087
endstem	079:00010:104:089
endsten	078:00010:103:088
endster	080:00010:105:090
endstes	081:00010:106:091
ene	032:00001:001:001
enem	034:00001:004:004
enen	033:00001:002:002
ener	035:00001:005:005
enere	052:00001:092:092
enerem	054:00001:094:094
eneren	053:00001:093:093
enerer	055:00001:095:095
eneres	056:00001:096:096
enes	036:00001:007:007
enste	072:00001:102:102
enstem	074:00001:104:104
ensten	073:00001:103:103
enster	075:00001:105:105
enstes	076:00001:106:106
er	005:10100:000:000
ere	092:00100:001:001
erem	094:00100:004:004
eren	093:00100:002:002
erer	095:00100:005:005
eres	096:00100:007:007
ern	006:10000:000:010
es	007:10100:000:012
est	008:00100:000:013
este	097:00100:001:102
estem	099:00100:004:104
esten	098:00100:002:103
ester	100:00100:005:105
estes	101:00100:007:106
et	009:00001:000:014
ete	042:00001:001:017
etem	044:00001:004:019
eten	043:00001:002:018
eter	045:00001:005:020
etere	062:00001:092:022
eterem	064:00001:094:024
eteren	063:00001:093:023
eterer	065:00001:095:025
eteres	066:00001:096:026
etes	046:00001:007:021
etste	082:00001:102:102
etstem	084:00001:104:104
etsten	083:00001:103:103
etster	085:00001:105:105
etstes	086:00001:106:106
n	010:11000:000:000
nd	011:00010:000:000
nde	047:00010:001:001
ndem	049:00010:004:004
nden	048:00010:002:002
nder	050:00010:005:005
ndere	067:00010:092:092
nderem	069:00010:094:094
nderen	068:00010:093:093
nderer	070:00010:095:095
nderes	071:00010:096:096
ndes	051:00010:007:007
ndste	087:00010:102:102
ndstem	089:00010:104:104
ndsten	088:00010:103:103
ndster	090:00010:105:105
ndstes	091:00010:106:106
s	012:10000:000:000
st	013:01000:000:014
ste	102:00100:001:017
stem	104:00100:004:019
sten	103:00100:002:018
ster	105:00100:005:020
stes	106:00100:007:021
t	014:01001:000:000
te	017:01001:001:001
tem	019:00001:004:004
ten	018:01001:002:002
ter	020:00001:005:005
tere	022:00001:092:092
terem	024:00001:094:094
teren	023:00001:093:093
terer	025:00001:095:095
teres	026:00001:096:096
tes	021:00001:007:007
test	015:01000:000:008
teste	027:00001:097:097
testem	029:00001:099:099
testen	028:00001:098:098
tester	030:00001:100:100
testes	031:00001:101:101
tet	016:01000:000:009