1 2 3 4 5 6 7
#...viel Programm...benötige $energie: open my $in, "< logfile" or die "geht nicht\n"; while (<$in>){if (/Energie: (\d+)/){$energie = $1; last}} ... #...mehr Programm...benötige $gradient: open my $in, "< logfile" or die "geht nicht\n"; while (<$in>){if (/Gradient: (\d+)/){$gradient = $1; last}}
1 2 3 4 5
open my $in, "< logfile" or die "geht nicht\n"; while (<$in>){ if ((/Energie: (\d+)/) && ($brauchene) ){$energie = $1} if ((/Gradient: (\d+)/) && ($brauchgrad)){$gradient = $1} }
1 2 3 4 5 6 7 8 9 10
open my $in, "< logfile" or die "geht nicht\n"; if ($brauchene){ if ($brauchgrad){ while (<$in>){such nach Energie und Gradient} }else{ while (<$in>){such nach Energie} } }elsif ($brauchgrad){ while (<$in>){such nach Gradient} }
1 2 3 4 5 6 7 8 9
use autodie; open my $in, '<', 'logfile'; my %loginfo; while (<logfile>) { $loginfo{$1} = $2 if /(\w+): (\d+)/; } ... print "Energie: $loginfo{Energie}\n";
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
#!/usr/bin/perl use strict; use warnings; my ($e,$g); printtext(); { my ($x,$y); open my $in, "< text" or die; defsubs(); my @j = ($x,$y); while (<$in>){print "while: $_"; for my $j (@j){$j->($_)}} print "e: $e; v: $g;\n"; #+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+# sub defsubs{ $x = sub{ #Energie-Auslese-Sub if ($_[0] =~ /Energie: (\d+)/){$e = $1} }; $y = sub{ #Gradient-Auslese-Sub if ($_[0] =~ /Gradient/){ $_ = <$in>; $_ = <$in>; $_ = <$in>; s/^\s+//; my @l = split; $g = sqrt($l[0]**2+$l[1]**2+$l[2]**2); } }; } #+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+# } system "rm text"; sub printtext{ if (-e "text"){die "text existiert...\n"} open my $txt, "> text" or die; print $txt "Test 1 Energie: 20 als nächstes der Gradient gleich gleich 1 2 3 Ende\n"; }