Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
876 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] fichier PM

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PERL] fichier PM

n°198030
gratter_de​de
Posté le 20-08-2002 à 15:29:14  profilanswer
 

Vous savez comment utiliser un fichier pm dans un script perl ?

mood
Publicité
Posté le 20-08-2002 à 15:29:14  profilanswer
 

n°198036
gratter_de​de
Posté le 20-08-2002 à 15:32:57  profilanswer
 

voici mon script perl :
 
#----------------------------------------------------------------
use IO::Socket;
 
use TEST;
 
print "Start initialization\n";
 
$sock = IO::Socket::INET->new(  Proto    => 'tcp',
                                  PeerAddr => '163.187.78.34',
                                  PeerPort => 683 )
                  or print ($@), die;
print("socket creation ok\n" );
 
# ----------------- TEST interface ----------------------------------------
print "Create instance : TEST interface\n";
 
$test = new TEST($sock)
 or print("\nError interface test creation\n" ) , die;
print("Instance test interface ok\n" );
#----------------------------------------------------------------
 
 
 
et voici mon fichier pm :
 
#----------------------------------------------------------------
use strict;
 
package main;
 
use CORBA::Perl::CORBA;
use Carp;
 
#
#   begin of interface TEST
#
 
package TEST;
 
use CORBA::Perl::CORBA;
use Carp;
 
 
######  methodes
 
# constructor
sub new {
 my $proto = shift;
 my $class = ref($proto) || $proto;
 my $self = {};
 bless($self, $class);
 my($sock) = @_;
 croak "undefined parameter 'sock' in 'TEST'.\n"
   unless (defined $sock);
 croak "invalid parameter 'sock' in 'TEST'.\n"
   unless (ref $sock eq 'IO::Socket::INET';);
 $self->{sock} = $sock;
 return $self;
}
#----------------------------------------------------------------

n°198043
gratter_de​de
Posté le 20-08-2002 à 15:35:45  profilanswer
 

Le script perl ne reconnait pas le constructeur new se trouvant dans le fichier test.pm
 
Le message d'erreur est le suivant :
Can't locate object method "new" via package "TEST"
 

n°198444
Aricoh
gentil mais fo po pousser
Posté le 21-08-2002 à 08:58:33  profilanswer
 

Un package Perl (.pm) doit contenir les éléments suivants :
 

Code :
  1. package MonPackage;
  2. use vars qw(@ISA @EXPORT);
  3. use Exporter;
  4. @ISA = qw(Exporter);
  5. @EXPORT = qw(MaFonction1 MaFonction2 MaFonction3);


 
Il faut déclarer le package dans celui-ci via package. On utilise la méthode Exporter qui contient déjà des routines toutes faites pour inclure des packages dans un script Perl. @EXPORT contient le nom de toutes tes fonctions contenues dans le package. A noter que tu peux également utiliser @EXPORT_OK pour y insérer les fonctions que tu veux utiliser qu'uniquement via un require.
 
Quant à la suite de ton package :
 

Code :
  1. sub MaFonction1 { }
  2. sub MaFonction2 { }
  3. sub MaFonction3 { }
  4. 1;


 
Très important : tout package doit se terminer par une ligne contenant 1;
 
En espérant t'avoir un ch'tit peu aidé ...


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
n°198457
gratter_de​de
Posté le 21-08-2002 à 09:11:26  profilanswer
 

ok merci

n°198540
gratter_de​de
Posté le 21-08-2002 à 10:58:24  profilanswer
 

ok ca marche.
et maintenant j'aurai une autre question sur perl.
En C, il existe des fonctions time, localtime et mktime.
En perl, j'ai trouvé les fonctions time et localtime.
Tu connais une commande du mktime pour créer ton heure ?
 

n°198541
gratter_de​de
Posté le 21-08-2002 à 10:58:47  profilanswer
 

je suis allé voir sur perldoc.com sans succès.

n°198548
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 11:03:14  profilanswer
 

ca existe pas mktime en perl  


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°198555
gratter_de​de
Posté le 21-08-2002 à 11:05:19  profilanswer
 

comment fait-on pour saisir une heure du genre : 17/07/02 à 18:00:00 ?
 
Il faut carrément créer une fonction de saisie ?

n°198562
Aricoh
gentil mais fo po pousser
Posté le 21-08-2002 à 11:09:03  profilanswer
 

Je te donne 2 exemples concernant l'utilisation de time() et de localtime() :
 

Code :
  1. # exemple avec time()
  2. my $TpsDebut = time();
  3. # le programme continue ici
  4. # on arrive en fin de traitement :
  5. my $TpsFin = time();
  6. print "le traitement a dure ", $TpsFin - $TpsDebut, " secondes";


 
time() sert à calculer le temps de traitement (par exemple) d'un programme. Il retourne le nbre de secondes écoulées depuis le 1er janvier 1980.
 

Code :
  1. # exemple maintenant avec localtime :
  2. my ($Sec,$Min,$Heure,$Mjour,$Mois,$Annee,$Sjour,$Ajour,$Isdst)=localtime(time);
  3. print "il est $Heure:$Min$Sec";


 
localtime() donne bcp d'autres éléments de temps, je te conseille de zieuter perlfunc si tu es sous unix ou bien de faire une recherche sur localtime dans la doc html si tu utilises activestate


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
mood
Publicité
Posté le 21-08-2002 à 11:09:03  profilanswer
 

n°198565
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 11:09:45  profilanswer
 

comment ca saisir ?  
sinon pour tout les problemes de gestion du temps, il existe des tas de modules du plus simple au plus compliqué sur cpan  
search.cpan.net, tu vas trouver ton bonheur


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°198566
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 11:10:09  profilanswer
 

cpan.org je veux dire


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°198573
Aricoh
gentil mais fo po pousser
Posté le 21-08-2002 à 11:13:20  profilanswer
 

gratter_dede a écrit a écrit :

comment fait-on pour saisir une heure du genre : 17/07/02 à 18:00:00 ?
 
Il faut carrément créer une fonction de saisie ?




 

Code :
  1. print "Donnez la date du jour au format JJ/MM/AA :";
  2. my $Date;
  3. do {
  4.     chomp($Date) = <STDIN>;
  5.     if ($Date !~ /^([0-9]{2})\/([0-9]{2})\/([0-9]{2})$/) {
  6.         $Date = "";
  7.         print "Format date erreur !";
  8.     }
  9. } while (! $Date);


 
Je pense que tu as capté le coup de ma boucle do ... while (sinon, demande). Pour ce qui est de l'expression régulière :
 
Je teste si ma variable contient bien une série de 2 chiffres ([0-9]{2}) suivi d'un slash (\/) etc etc. Si faux, j'efface ce qui a été saisi.
 
J'espère avoir été clair.


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
n°198576
gratter_de​de
Posté le 21-08-2002 à 11:13:53  profilanswer
 

ce que je cherche à faire est la conversion suivante :
 
saisir une heure sous forme 15/07/02 à 18:00:00 en seconde depuis le 1° janvier 1970.
 
Le processus inverse se fait avec time et localtime.
 
Je recherche un EQUIVALENT DE mktime sous perl.
 
Je vais voir sur cpan.org
 
Et encore merci

n°198603
Aricoh
gentil mais fo po pousser
Posté le 21-08-2002 à 11:22:27  profilanswer
 

Tu veux obtenir en résultat le nbre de sec écoulées entre le 1er janvier 70 et le jour + heure reçu en saisie ?
 
Bah, dans ce cas, fais-toi une fonction qui calcule le truc, nan ?


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
n°198611
gratter_de​de
Posté le 21-08-2002 à 11:25:31  profilanswer
 

Aricoh a écrit a écrit :

Tu veux obtenir en résultat le nbre de sec écoulées entre le 1er janvier 70 et le jour + heure reçu en saisie ?
 
Bah, dans ce cas, fais-toi une fonction qui calcule le truc, nan ?




 
exact.
je pensais qu'il existait déjà une fonction de ce type en perl.
Dommage...
 
merci


Message édité par gratter_dede le 21-08-2002 à 11:26:32
n°198617
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 11:27:53  profilanswer
 

ben tu utilise le module Timelocal qui fait l'inverse de localtime, et c'est pile poil ce que tu veux.  
TIMTOWTDI


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°200384
gratter_de​de
Posté le 23-08-2002 à 10:46:13  profilanswer
 

ca marche ok

n°200960
sihal_agai​n
in doubt, reboot
Posté le 23-08-2002 à 20:52:31  profilanswer
 

jz sais :)


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°200962
sihal_agai​n
in doubt, reboot
Posté le 23-08-2002 à 20:55:39  profilanswer
 

eval {
  $a += die 2  ;
};
if ( $@ ) { $a = $a-1 ; )
a votre avis ca compile ca ? lol premiere tentative de ma part dobfusquer.  


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°201771
gratter_de​de
Posté le 26-08-2002 à 09:40:30  profilanswer
 

ca compile ton morceau de prog

n°202784
sihal_agai​n
in doubt, reboot
Posté le 27-08-2002 à 12:44:10  profilanswer
 

mais ca fait pas ce qui est voulu malheuresement


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] fichier PM

 

Sujets relatifs
[ ACCESS] Boite de dialogue ouvrir fichier avec ACCESS et VB[C] Format de fichier texte sous Windows ?
php et upload de fichier[PHP]manip fichier
Chargement d'un fichier en mémoirePHP - Savoir si un fichier existe
fichier font de windows[DOS] sauvegarde de fichier toute bete..
[vb] utiliser un string pour un nom de fichierComment sauvegarder des données dans un fichier ?
Plus de sujets relatifs à : [PERL] fichier PM


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR