Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Perl] Datum vergelijken

5 views
Skip to first unread message

ruud

unread,
Feb 22, 2005, 2:47:28 PM2/22/05
to
Ik zit nou al de hele dag te prutsen met de volgende coduh:

#!/usr/bin/perl
use Date::Manip; ## Hi John ;-)

my $curfile = ("/home/ruud/testlog");
$tm = time;
$now = localtime($tm);
($READTIME, $WRITETIME) = (stat($curfile))[8,9];
$then = localtime($WRITETIME);
print $then, "\n";

$date1 = ParseDate("$now");
$date2 = ParseDate("$then");

if ($date1 lt $date2) {
# date1 is earlier
} else { # date2 is earlier (or the two dates are identical)
}
if ($date1 > $date2) {
print "Oud log wordt gewist\n";
unlink "/home/ruud/testlog";
} elsif ($date1 == $date2) { print "The dates are the same\n";
} else { print "Log wordt gepost\n";
}

print ("$date1 ","datum vandaag\n");
print ("$date2 ","datum logfile\n");
exit

De bedoeling is dat het testlog gewist wordt als het van gisteren is.
Een cronjob is niet mogelijk, omdat het op een laptop staat die niet 24/7 up
is.
Het werkt bijna goed, behalve als date1 en date2 het zelfde zijn, dan wordt
het log gewist.
Dat is niet de bedoeling, het mag pas gewist worden als date1 gisteren of
later is/was.
Persoonlijk denk ik aan de tijd achter de datum en aan "chomp", alleen weet
ik niet hoe ik het moet implementeren in deze code.
Iemand ???
--
Gr. Ruud
news://news.nl-netwerken.com

John Bokma

unread,
Feb 22, 2005, 3:09:08 PM2/22/05
to
ruud wrote:

> Ik zit nou al de hele dag te prutsen met de volgende coduh:
>
> #!/usr/bin/perl
> use Date::Manip; ## Hi John ;-)

use strict;
use warnings; # Hi ruud ;-)

> my $curfile = ("/home/ruud/testlog");

geen () er omheen, is erg verwarrend.

> De bedoeling is dat het testlog gewist wordt als het van gisteren is.

-M $curfile < 1 or unlink $curfile or die "Couldn't delete '$curfile'\n";

Niet getest :-D

--
John Bokma
Voorbeeldscripts in Perl: http://johnbokma.com/perl/
Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
Tevreden opdrachtgevers: http://castleamber.com/testimonials.html

ruud

unread,
Feb 21, 2005, 3:31:12 PM2/21/05
to
John Bokma wrote:

> use strict;
> use warnings; # Hi ruud ;-)

Ik weet het :-)

> -M $curfile < 1 or unlink $curfile or die "Couldn't delete '$curfile'\n";
>
> Niet getest :-D

Doet helemaal niets.
In mijn code geeft strict/warnings het volgende aan:
Argument "2005022213:39:19" isn't numeric in numeric gt (>) at ./date line
21.
Argument "2005022121:24:45" isn't numeric in numeric gt (>) at ./date line
21.
Log wordt gepost
2005022121:24:45 datum vandaag
2005022213:39:19 datum logfile

Datum van vandaag heb ik als test 1 dag terug gezet, toch zegt het programma
"log wordt gepost" ipv gewist.

John Bokma

unread,
Feb 22, 2005, 4:52:56 PM2/22/05
to
ruud wrote:

use strict;
use warnings;

my $curfile = 'Group.pm';


-M $curfile < 1
or unlink $curfile
or die "Couldn't delete'$curfile'\n";

Heeft zojuist bij mij Group.pm gewist :-D.

Koos Pol

unread,
Feb 23, 2005, 1:42:22 AM2/23/05
to
John Bokma wrote (Tuesday 22 February 2005 21:09):

>> my $curfile = ("/home/ruud/testlog");

> geen () er omheen, is erg verwarrend.


Voor de OP: Het is meer geluk dan wijsheid dat dit werkt. Immers:

$ perl
my $string = qw/a/;
print "$string\n";
a

$ perl
my $string = qw/a b c d e/;
print "$string\n";
e

--
KP
Ik krijg overigens uitsluitend virussen van mensen met een
virusscanner. Mensen zonder virusscanner sturen mij nooit
virussen. Gek he? --- V. Sessink in nl.comp.os.linux.overig

ruud

unread,
Feb 23, 2005, 1:52:23 AM2/23/05
to
John Bokma wrote:

> use strict;
> use warnings;
>

> my $curfile = 'Group.pm';
> -M $curfile < 1
> or unlink $curfile
> or die "Couldn't delete'$curfile'\n";
>
> Heeft zojuist bij mij Group.pm gewist :-D.

Hm, bij mij doet dit niets.....

ruud

unread,
Feb 23, 2005, 8:14:23 AM2/23/05
to
ruud wrote:

> Hm, bij mij doet dit niets.....

Nou, ik heb het werkende.
Alleen zit er nog wel 1 maar aan:
Via 2 variabele $date1 en $date2 bekijkt mijn script of het log van vandaag
of gisteren of ouder is.
Dat werkt wel op de hele dagen, maar niet op de zelfde dag, dan is het log
na 1 seconde al oud.
Komt, lijkt mij, door dat de tijd ook in $date1 en 2 staan.
Nu vond ik de module Time::Format en die kan idd de klok eraf chompen.
Alleen werkt dat maar met 1 variabele $time en niet met 2 variabele.
Of kan het wel en kijk ik niet goed ?


Voor de volledigheid het scriptje ook maar even posten hier:

#!/usr/bin/perl
use strict;
use warnings;
use Time::Format;
use Date::Manip;
$time{ddmmyy};
my $tm = time;
my $now = localtime($tm);
my $file = '/home/ruud/testlog';
my ($READTIME, $WRITETIME) = (stat($file))[8,9];
my $manip = localtime($WRITETIME);
my $date1=&ParseDate($now);
my $date2=&ParseDate($manip);
if ($date1 lt $date2) {
print "Logfile is nieuw ", $date1,"\n"
} else {
print "Logfile is oud ", $date2, "\n";

ruud

unread,
Feb 23, 2005, 8:30:34 AM2/23/05
to
ruud wrote:

> Hm, bij mij doet dit niets.....

Nou, ik heb het werkende.

exit

Wat ik dus zoek: is het mogelijk met time::format 2 variabelen te maken,
zoals $time1 en $time2.

John Bokma

unread,
Feb 23, 2005, 12:07:45 PM2/23/05
to
ruud wrote:

> John Bokma wrote:
>
>> use strict;
>> use warnings;
>>
>> my $curfile = 'Group.pm';
>> -M $curfile < 1
>> or unlink $curfile
>> or die "Couldn't delete'$curfile'\n";
>>
>> Heeft zojuist bij mij Group.pm gewist :-D.
>
> Hm, bij mij doet dit niets.....

Heeel vreemd, want ik doe niks bijzonders. -M is een file test die het
aantal dagen teruggeeft, (achter de komma staan dag-delen).

ruud

unread,
Feb 25, 2005, 1:55:35 AM2/25/05
to
ruud wrote:

>> my $curfile = 'Group.pm';
>> -M $curfile < 1
>> or unlink $curfile
>> or die "Couldn't delete'$curfile'\n";
>>
>> Heeft zojuist bij mij Group.pm gewist :-D.
>
> Hm, bij mij doet dit niets.....

Kwam zeker door de copy/paste, heb het nu overgetikt en het werkt.
Jouw code is lekker klein, ik dacht weer te moeilijk ;-)

John Bokma

unread,
Feb 24, 2005, 12:33:46 PM2/24/05
to
ruud wrote:

> ruud wrote:
>
>>> my $curfile = 'Group.pm';
>>> -M $curfile < 1
>>> or unlink $curfile
>>> or die "Couldn't delete'$curfile'\n";
>>>
>>> Heeft zojuist bij mij Group.pm gewist :-D.
>>
>> Hm, bij mij doet dit niets.....
>
> Kwam zeker door de copy/paste, heb het nu overgetikt en het werkt.
> Jouw code is lekker klein, ik dacht weer te moeilijk ;-)

Thanks. En ja, een taal leren kost gigantisch veel tijd. Ik doe Perl ca. 11
jaar (niet non-stop overigens) en soms lees ik Programming Perl weer eens
door, omdat sommige dingen gewoon niet blijven hangen als je ze (bijna)
nooit gebruikt.

Het probleem is ook: het vinden van goede voorbeeldcode. Perl heeft de naam
rommelig te zijn, maar dat komt door het grote aantal rommelige CGI scripts
vind ik. Maar ook op CPAN zie ik code die ik niet netjes geprogrammeerd
vind :-D (Maar dat heb je als je "in" een taal zit vlug).

Zelf vind ik de O'Reilly boeken erg goed, en het kan geen kwaad om op de
Perl nieuwsgroepen bepaalde mensen een beetje te volgen :-D.

ruud

unread,
Feb 24, 2005, 1:48:52 PM2/24/05
to
John Bokma wrote:

> Zelf vind ik de O'Reilly boeken erg goed, en het kan geen kwaad om op de
> Perl nieuwsgroepen bepaalde mensen een beetje te volgen :-D.
>

Ik heb Programming Perl (voor de tweede keer) besteld bij Bol.com.
Eerst hadden ze een verkeerd boek gestuurd :-(

John Bokma

unread,
Feb 24, 2005, 3:35:10 PM2/24/05
to
ruud wrote:

> John Bokma wrote:
>
>> Zelf vind ik de O'Reilly boeken erg goed, en het kan geen kwaad om op de
>> Perl nieuwsgroepen bepaalde mensen een beetje te volgen :-D.
>
> Ik heb Programming Perl (voor de tweede keer) besteld bij Bol.com.
> Eerst hadden ze een verkeerd boek gestuurd :-(

PHP for dummies? :-D.

Is Bol goedkoper dan comcol? Uit nieuwsgierigheid, ik was altijd heel
tevreden over de snelheid e.d. van comcol.

ruud

unread,
Feb 24, 2005, 4:38:35 PM2/24/05
to
John Bokma wrote:

> PHP for dummies? :-D.

Het had zelfs niet eens met computers te maken :-)

> Is Bol goedkoper dan comcol? Uit nieuwsgierigheid, ik was altijd heel
> tevreden over de snelheid e.d. van comcol.

comcol ken ik niet.
Het gemak van Bol vind ik dat je een aceptgirokaart krijgt ipv dure
rembourskosten of vooruit betalen.
Ik was geloof ik rond de 40 euro kwijt aan het boek.
Wel paperback helaas :-(

John Bokma

unread,
Feb 24, 2005, 4:51:02 PM2/24/05
to
ruud wrote:

> John Bokma wrote:
>
>> PHP for dummies? :-D.
>
> Het had zelfs niet eens met computers te maken :-)
>
>> Is Bol goedkoper dan comcol? Uit nieuwsgierigheid, ik was altijd heel
>> tevreden over de snelheid e.d. van comcol.
>
> comcol ken ik niet.

http://comcol.nl/
EUR 45,90, 2 EUR verzend, dus Bol is goedkoper. Ik gebruikte comcol jaren
terug, en op faktuur. Het fijne vond ik dat voor 11 in de ochtend besteld
het vaak de volgende dag in huis was.

> Het gemak van Bol vind ik dat je een aceptgirokaart krijgt ipv dure
> rembourskosten of vooruit betalen.
> Ik was geloof ik rond de 40 euro kwijt aan het boek.
> Wel paperback helaas :-(

1000+ bladzijden :-D.

Yup, "computerboeken" zijn extreem duur, helaas.

0 new messages