#!/usr/bin/perl -w use warnings; use strict; package timer; ######################################################################################## sub new { my $classname = shift; my $self = {timerstart => 0, startzeit => 0, aktzeit => 0, endzeit => 0}; return bless($self, $classname); } ######################################################################################## sub TON { my $self = shift; my $vke = shift; my $laufzeit = shift; if ($vke == 0) { $self->{timerstart} = 0; $self->{aktzeit} = 0; return 0; } #Timer initialisieren if ($self->{timerstart} == 0 && $vke == 1) { $self->{timerstart} = 1; $self->{startzeit} = `(date +%s%N)` / 1000000; $self->{endzeit} = $self->{startzeit} + $laufzeit; $self->{aktzeit} = int($self->{endzeit} - $self->{startzeit}); } if ($self->{timerstart} && $self->{aktzeit} > 0 ) { $self->{aktzeit} = int($self->{endzeit} - `(date +%s%N)` / 1000000); return 0; } else { $self->{aktzeit} = 0; return 1; } } ######################################################################################## my $timer_1 = timer->new(); while (1) { sleep(1); if ($timer_1->TON(1,10000)) { print "Zeit ist abgelaufen\n"; } else { print "Zeit läuft=".int($timer_1->{aktzeit}/1000)."\n"; } }