Hallo,
ich habe ein kleines Perl-Skript erstellt, das Suffix zerlegt.
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
#!/usr/bin/perl
use strict;
use warnings;
my @list;
open(my $root, "root.txt") or die "kann das Lexikon nicht öffnen: $!";
open(my $begriff, "begriff.txt") or die "kann das Lexikon nicht öffnen: $!";
while(<$begriff>){
chomp;
push @list, $_;
}
while(<$root>){
chomp;
my $lex = $_;
foreach my $string(@list){
if($string =~ /^(.*)$lex$/i){
print "$string\t$1\t$lex\n";
#um zu verhindern, ABCabcd ABCa bcd
@list = grep !/$string/, @list;
}
}
}
print "REST : @list\n";
Liste 'root':
Liste 'begriff':
ABCabcd
DEFdef
EFGabcd
HIJabc
KLMdefg
XYZabc
opqr
stuv
Aber ich bekomme komische Result, wie folgt,
$ perl zerlegen.perl
ABCabcd ABC abcd
EFGabcd EFG abcd
KLMdefg KLM defg
HIJabc HIJ abc
DEFdef DEF def
REST : XYZabc opqr stuv
Könnte jemand mir erklären, woran es liegt? (wieso der Begriff 'XYZabc' nicht erkannt wird?)
Und könnte jemand beibringen, wie ich noch effizienter das Skript erstellen kann?
Last edited: 2011-11-24 12:50:47 +0100 (CET)