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