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, $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






-----------------------------------------
CONFIDENTIALITY NOTICE
This E-mail message and any documents which accompany it are intended only
for the use of the individual or entity to which addressed, and may contain
information that is privileged, confidential or exempt from disclosure under
applicable law.  If the reader is not the intended recipient, any
disclosure, distribution or other use of this E-mail message is prohibited.
If you have received this E-mail message in error, please delete and notify
the sender immediately.  Thank you.


_______________________________________________________
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



"Dit e-mailbericht en alle documenten die ermee verzonden worden,
zijn vertrouwelijk en uitsluitend voor gebruik door de persoon of
de onderneming waaraan ze geadresseerd zijn. Indien deze e-mail
verkeerdelijk bij u terechtkomt, gelieve de afzender te verwittigen
en deze bestanden van uw computer te verwijderen.

Ce message e-mail ainsi que tous les fichiers transmis sont confidentiels
et uniquement destin�s � l'usage de la personne ou de l'entit� � qui
ils sont adress�s. Si vous avez re�u ce message e-mail par erreur,
veuillez en informer l'exp�diteur et le supprimer de tout ordinateur."

_______________________________________________________
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 à