|
Thread sub aus sub aufrufen ...
(9 answers)
Opened by jan999 at 2009-08-24 18:37
Moin !
ich habe eine Funktion geschrieben die eine Sub (InitFilter) aufruft und aus dieser wird wieder eine andere (CreateCollectionTimeTable) aufgerufen. Doch wie meine Kontrollausgaben zeigen wird diese überhaupt nicht ausgeführt. Kann mir einer sagen wo mein Fehler liegt - vermutlich etwas im Bereich der Aufrufen. Gruß Jan :-) Hier der Code und einige Musterzeilen weiter unten: --------------------------------------------------- Code (perl): (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 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 #!/usr/bin/perl # Parser einbinden my $osmolt_file = $ARGV[0]; my $result_file = "newfile.txt"; InitFilter(); # Filter anlegen sub InitFilter { #Filterdatei oeffnen open( FH, $osmolt_file ) or die( "$osmolt_file: $!" ); open ($out, ">", $result_file) || die ("Can't open html output file: ".$result_file) ; my $count = 0; #fuer jede Zeile while( <FH> ) { chomp; # Newlines loeschen s/^\s+//; # fuehrende Leerzeichen entfernen s/\s+$//; # nachfolgende Leerzeichen entfernen next if( /^#/ ); # Kommentare ueberspringen next if( /^s*$/ ); # Leerzeilen ueberspringen #Zeile auftrennen my($point,$title,$collection_times,$icon,$icon_size,$iconOffset) = split( /\t/, $_, 7 ); if (length $desc > 0 ) { my $code = "<table width=\"100\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\">"; $icon="postbox_collection.png"; CreateCollectionTimeTable(); $collection_times=$code; } print $out $point."\t".$title."\t".$collection_times."\t".$icon."\t".$icon_size."\t".$iconOffset."\n"; #Anzahl der eingelesenen Zeilen $count++; } close( FH ); close $out; print $count." Zeilen bearbeitet"; } #erstellen der Tabelle mit den Leerungszeiten sub CreateCollectionTimeTable { my(@days) = split( /;/, $collection_times ); foreach $day (@days){ $_ = $day; s/^\s+//; # fuehrende Leerzeichen entfernen s/\s+$//; # nachfolgende Leerzeichen entfernen my($dayname,$daytime) = split( / /, $_ ); $code .= "<tr><td>".$dayname."</td><td>".$daytime."</td></tr>"; print "|".$dayname."| - |".$daytime."|\n"; $code .= "</tr>"; } #Tabellen-Abschluss $code .= "</table>"; print "------------------------\n"; print $code."\n"; } Hier etwas MusterDaten: ----------------------- Quote |