#!/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"; }