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: ".$listecur[3]."\n");
# print("saison: ".$listecur[4]."\n");
# print("year: ".$listecur[5]."\n");
 return (@listecur);
}

sub erasefile()
{
 my ($file)[EMAIL PROTECTED];
 system ("/bin/rm $file");
}

sub senddebug()
{
 print "Debug: @_\n";
}

sub sendecho()
{
 print "flag: @_\n";
}



Debut comstat file

#!/usr/bin/perl -s -P
########################################################################
#######
# comstat v 0.1
#
########################################################################
#######
use library;
$str="  Thu Jul 31 20:27:17 CEST 2003";
$bis=3;
$bis=&library'anneebissextile("2003");
print "$bis\n";
$str2 = &library'trim($str);
print ("$str2\n");


_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux
Archives: http://www.mail-archive.com/[EMAIL PROTECTED]
IRC: efnet.unixtech.be:6667 - #unixtech

Répondre à