#!/usr/bin/perl use strict; use warnings; use Time::HiRes qw( gettimeofday tv_interval ); my $t0 = [ gettimeofday ]; my ($von, $bis, $schritt, $count) = (10, 30, 4, 25000); my $schleifendurchlaeufe = schleife($von, $bis, $schritt, $count, 'dryrun!'); print "Anzahl Schleifendurchlaufe: $schleifendurchlaeufe\n"; if ($schleifendurchlaeufe <= 5000) { my $ergebnis = schleife($von, $bis, $schritt, $count); print "Ergebnis: $ergebnis\n"; } else { print "Warnung: Kein Ergebnis ermittelt (zu viele Durchläufe).\n"; } print "Time elapsed: " . (tv_interval( $t0 )) . " seconds\n"; sub schleife { my ($von, $bis, $schritt, $count, $dryrun) = @_; my $durchlauefe; for (1..$count) { for (my $i = $von; $i <= $bis; $i+=$schritt) { if ($dryrun) { $durchlauefe++; } else { # Hier die Befehle, die in der Schleife ausgeführt werden sollen } } } if ($dryrun) { return $durchlauefe; } else { return "Befehle in der Schleife ausgeführt!"; } }