RE : [linux] Perl module

2003-08-01 Par sujet pascal.liste
Merci 
Je vais tester

-Message d'origine-
De : [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] De la part de Damien Bouvy
Envoyé : vendredi 1 août 2003 9:25
À : '[EMAIL PROTECTED]'
Objet : RE: [linux] Perl module


Bonjour,

puisque tu n'a pas crée d'objet dans ton module, il vaudrait mieux
appeler les fonctions

de ton module comme ceci : library::nom_fonction

de plus, si tu veux pouvoir utiliser les fonctions de ton module, tu
dois décommenter

les lignes suivantes : 

#require Exporter;
[EMAIL PROTECTED] = qw(Exporter);


-Original Message-
From: Dominique Gallot [mailto:[EMAIL PROTECTED]
Sent: vendredi 1 août 2003 9:23
To: [EMAIL PROTECTED]
Subject: Re: [linux] Perl module



C'est normal le #!/usr/bin/parl -s -P ??? perl non ?

Les erreur se trouve à la ligne 4 et 6

$bis=library'anneebissextile(2003);
$str2 = library'trim($str);

pq le ' 
je suis pas un pro de perl, mais c'est pas la syntax pour appeler un fct
d'un package perl. c'est plutot un truc du genre library--trim non ?

Dominique



 

  [EMAIL PROTECTED]

  om.net To:
[EMAIL PROTECTED]

  Sent by:cc:   (bcc:
Dominique
Gallot/BRU/MASTERCARD)  
  [EMAIL PROTECTED]Subject:  [linux] Perl
module 
  unixtech.be

 

 

  31/07/2003 23:07

  Please respond to

  linux

 

 





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, 

[linux] Perl module

2003-07-31 Par sujet pascal.liste
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: