J'essaie d'écrire dans le fichier ~/.log mais le fichier reste vide. Je ne sais pas pourquoi cela se passe, tout va bien.Pourquoi mon programme Perl ne génère rien dans mon fichier?
Mon système est Ubuntu 9.10amd64, Perl 5.10.
#!/usr/bin/perl
# vim:set filetype=perl:
use strict;
use warnings;
use LWP::Simple qw||;
use Net::SMTP;
# Only because log file
$| = 1;
my $match_string = "... some text to match ..." ;
my $content;
my @mails = ('[email protected]',
'[email protected]',
);
my $data = <<END;
... Subject text ...
END
open(my $log, ">>","$ENV{HOME}/.log")
or die "Couldn't open log file";
sub get($) {
my $content_ref = shift;
print {$log} "get: Error: $!\n"
until (${$content_ref}
= LWP::Simple::get("www.somesite.com/index.html"));
}
my $check_num = 0;
get(\$content);
while (index($content, $match_string) != -1) {
print {$log} "Check number $check_num\n"
or die "Couldn't write in log file";
# This is printed
# print "Check number $check_num: $ENV{HOME}/.log\n";
$check_num++;
get(\$content);
sleep 60*30;
}
my $server = "smtp.my_provider.org";
my $smtp = Net::SMTP->new($server)
or print {$log} "smtp: Couldn't connect on $server\n";
$smtp->mail('[email protected]_provider.org')
or print {$log} "smtp: Error in mail\n";
$smtp->bcc(@mails)
or print {$log} "smtp: Error in bcc\n";
$smtp->data();
$smtp->datasend($data)
or print {$log} "smtp: Error when sending data\n";
$smtp->dataend;
$smtp->quit();
Je pense que vous voulez dire qu'il attend 30 minutes. 60 * 30. – Geo
Merci :), c'est la solution – XoR