Salut la liste !
J'ecrit un pgm pour comptabilise mes connection internet (temp, bytes
send, ...)
Pour plus de facilité j'ai placé qque prcédure dans un module
Mais voilà !
:~/dvpt/projets/ppp# ./comstat
:4: unterminated character constant
:6: unterminated character constant
0
Thu Jul 31 20:27:17 CEST 2003
Question comment expliquez vous les deux première lignes ?
Comment y remédier ?
Merci à tous
En attachement mes source
Debut de library.pm
#!/usr/bin/parl -s -P
###
# library.pm v 0.1
#
###
package library;
#require Exporter;
[EMAIL PROTECTED] = qw(Exporter);
@EXPORT_OK = qw();
@EXPORT= qw( trimg trimd trim squeeze gettime mega datecurrent
erasefile datetoday strtotime anneebissextile modulo4);
###
sub trimg()
#trim gauche de $imput. effacement de TOUT les blancs en DEBUT de ligne.
{
my ($var) = @_;
$var =~ s/^ +//;
return ($var);
}
sub trimd()
#trim droite de $imput. effacement de TOUT les blancs en FIN de ligne.
{
my ($var) = @_;
$input =~ s/ +$//;
return ($var);
}
sub trim()
#trim de $imput. effacement de TOUT les blancs en FIN et DEBUT de ligne.
{
my ($var) = @_;
$var =trimg(trimd($var));
return ($var);
}
sub squeeze()
# élimine toutes les séquences de blanc
{
my ($var) = @_;
$var =~ s/ / /;
if ( $var =~ / / )
{
$var = squeeze($var);
}
return($var);
}
sub gettime
#Formate et renvoie la date system
{
($ss, $mm, $hh, $jj, $MM, $aa, $se, $nb, $cest)= localtime(time);
$aa = $aa + 1900;
if ( $cest = 1 )
{
$cest=Heure d'été;
}
else
{
$cest=Heure d'hiver;
}
@date=($ss, $mm, $hh, $jj, $MM, $aa, $se, $nb, $cest);
return (@date);
}
sub datetoday()
# calcule le nombre de jours entiers écoulé entre la 1 du 1 1970 et une
date (ex: Mon Jul 28 16:59:11 CEST 2003)
{
my ($var) = @_;
my
(@mois)=(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,No
v,Dec);
my (@jour)=(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
my ($name_of_day, $name_of_month, $number_of_day, $time_string,
$fuseau, $year);
my ($year_ref) = 1970;
my ($temp) = trim(@_);
my ($cpt) = $year_ref;
my ($reste, $bissextile, $normal, $i ) = (0, 0, 0, 0 );
my ($stjours, $retval) = (0, 0 );
# Total des années en jours
($name_of_day, $name_of_month, $number_of_day, $time_string, $fuseau,
$year)= split(/ /,$temp);
for ($cpt=1970;$cpt$year;$cpt++)
{
$i = 0;
$i = anneebissextile($cpt);
if ( $i == 0 )
{
$normal++;
}
else
{
$bissextile++;
}
}
# Total des mois et des jours en jours
for ( $i=1; $name_of_day eq $jour[$i]; $i++ )
{
$stjours = $stjours + $jour[$i];
}
if ( $i 2 )
{
$stjours = $stjours + anneebissextile($year) + ( $number_of_day - 1)
;
}
else
{
$stjours = $stjours + ( $number_of_day - 1) ;
}
$retval = ($normal * 365 ) + ( $bissextile * 366 ) + $stjours;
return ($retval);
}
sub strtotime()
# calcule le nombre de seconde écouler entre la 1 du 1 1970 et une date
(ex: Mon Jul 28 16:59:11 CEST 2003)
{
my ($var) = @_;
my ($day) = 86400;
my ($hour) = 3600;
my ($year_ref) = 1970;
my ($temp) = trim(@_);
my ($stjours, $stsecondes, $tsecondes) =( 0, 0, 0);
my ($anneejours) = 0;
my ($heures, $minut, $sec) = (0, 0, 0 );
my ($name_of_day, $name_of_month, $number_of_day, $time_string,
$fuseau, $year);
($name_of_day, $name_of_month, $number_of_day, $time_string, $fuseau,
$year)= split(/ /,$temp);
# Total des années en jours
$anneejours = datetoday($temp);
# Total des heures, des minutes et des secondes en secondes
($heures, $minut, $sec) = split(/:/,$time_string);
$stsecondes = ( $heures * $hour ) + ( $minut * 60 ) + $sec;
$tsecondes = ( ( $anneejours + $stjours ) * $day + $stsecondes);
return($stsecondes);
}
sub anneebissextile()
# année bisextile ?
# si l'année est bissextile la fonction retourne 1
# si l'année n'est pas bissextile la fonction retourne 0
{
my ($var)[EMAIL PROTECTED];
my ($reste) = 0;
my ($retval) = 0;
my ($siecle) = 0;
$reste = $var % 100;
$siecle = $var - $reste;
if ( $reste == 0 )
{
$reste = modulo4($siecle);
if ( $reste == 0 )
{
$retval++;
}
}
else
{
$reste = modulo4($var);
if ( $reste == 0 )
{
$retval++;
}
}
return ($retval);
}
sub modulo4()
# calcule le reste de la division par 4
{
my ($var) = @_;
my ($reste) = 0;
$reste = $var % 4;
return ($reste);
}
sub mega()
{
my ($temp)[EMAIL PROTECTED];
my ($temp2);
my ($poids)=;
if ($temp = 1048576 )
{
$temp = $temp / 1024;
$poids =ko;
}
else
{
$temp = $temp / 1048576;
$poids =Mo;
}
$temp2=$temp $poids;
return ($temp2);
}
sub datecurrent()
{
my (@listecur);
my ($ligne)=;
$ligne=squeeze(trim(@_));
@listecur=split(/ /,$ligne);
# print(day title: .$listecur[0].\n);
# print(Month: .$listecur[1].\n);
# print(day Number: .$listecur[2].\n);
# print(time: