Thread Subroutines (4 answers)
Opened by mikey_b at 2010-03-28 15:56

mikey_b
 2010-03-28 15:56
#135397 #135397
User since
2010-03-15
21 Artikel
BenutzerIn
[default_avatar]
Hi ich habe folgende code und ausgabe:

Code: (dl )
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
#!/usr/local/bin/perl

use strict;
my %hash = ();
my @text;
open (AN, $ARGV[0] ) or die "$!\n";
open (IN, $ARGV[1]) or die "$!\n";

while (my $line = <AN>) {
chomp $line;
my ($k, $v) = split / /, $line;
$hash{$k} = $v;
}
my @vector = keys %hash;

wort_zu_zahl ();

sub wort_zu_zahl {
while (<IN>) {
chomp;
push (@text, split /\n/);
}
for my $line( @text ) {
chomp $line;
my @words = split / /, $line;
my %local = ();
$local{$_} += $hash{$_} for @words;
print join(",", map $local{$_} || 0, @vector),,"\n";
}
}


ARGV[0] ist text1:
sunny 2
hot 3
mild 1
windy 2
rainy 5

ARGV[1] ist text2:
sunny sunny
rainy hot mild
sunny windy mild mild

als Ausgabe kriege ich
4,0,0,0,0
0,3,1,0,5
2,0,2,2,0

Ich möchte mehrere dateien, die gleiche Struktur wie text2 haben als Argumente geben.
Ich wäre euch dankbar für eine Lösung. Bitte mit kommentare, so dass ich es gut verstehen kann und daraus lerne.
Danke

View full thread Subroutines