IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Traduire un script shell en perl


Sujet :

Langage Perl

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 53
    Points : 0
    Points
    0
    Par défaut Traduire un script shell en perl
    Bonjour tout le monde,

    je suis débutant dans le langage perl , j'ai fait un script en shell et je voudrais le traduire en perl
    Pouvez-vous svp m'aider et rendre cet homme heureux


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/bash
    source /info/varibale_environemet.env
     
    base=BDD
    sql=/info/req1.sql
     
    requete1=$( sqlplus $base $sql )
    En gros déclarer deux variables et lancer une requête sql.

    Merci bcp d'avance.

  2. #2
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Bonjour smtp2014,

    Pour rendre l'homme heureux, il faudrait que l'homme soit un peu plus loquace sur sa problématique.

    En effet en Perl il y a plusieurs façon de faire... en gros on peut te répondre soit en deux lignes du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Cde = ("sqlplus $base $sql");
    system @Cde;
    ou par un programme complet de plusieurs centaines de lignes si nécessaire...

    Donc suivant qu'il s'agit de l'exo pour les vacances de noël ou de l’interrogation des bases réparties du Pentagone nous pourrons aider l'homme différemment

    Ce qui peut nous aider pour commencer :
    - une petite info sur la nécessité de passer de shell en Perl, l'intérêt, le souci... pour que nous puissions comprendre ta problématique...
    Des infos du genre :
    - Unix, Linux, Windows... ou tout à la fois
    - Une ou plusieurs bases sur la (les) machines
    - MySQL Oracle ...
    - Requête.sql simple, multiple...

    Peut-on avoir un extrait de ce qu'il y a dans source /info/varibale_environemet.env
    Sans Password... bien sûr comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    export ORACLE_BASE=/ORACLE
    export ORACLE_TERM=vt320
    export TK2DEV=vt320
    export SQL=/ORACLE/admin/em
    export TNS_ADMIN=/etc
    export NLS_DATE_FORMAT='DD/MM/YYYY'
    export NLS_DATE_FORMAT
    export DBA=$DUFOUR/ORA/adm/dba
    export TOOLS=$DUFOUR/ORA/adm/tools
     
    case "$MAC" in
    	aladin)
    	export ORACLE_HOME=/ORACLE/product/8.1.7
    	export SQLPATH=/ORACLE/product/8.1.7/dbs
    	export ORA_NLS=/ORACLE/product/8.1.7/ocommon/nls/admin/data
    	export PATH=$PATH:/ORACLE/product/8.1.7/bin
    	export LD_LIBRARY_PATH=/ORACLE/product/8.1.7/lib
    	export ORACLE_SID=
    	;;
    	melchior)
    	.....................
    	;;
    	gaspard)
    	....................
    	;;
    	balthazar)
    	..........................
    	;;
    	*)
    	.........................
    	;;
    esac
    if [ $WHO = 'oracle' -o $WHO = 'oraold' ]
    then
    	export NLS_LANG=american_america.us7ascii
    else
    	export NLS_LANG=French_France.WE8ISO8859P1
    fi
    export PATH=$PATH:$DBA:$TOOLS
    echo
    echo "\t\t ATTENTION \t ORACLE_SID="$ORACLE_SID
    Sinon tu peux regarder ICI il y a déjà de quoi faire.
    Les exemples Oracle lancent des requêtes stockées sous forme de fichier.sql

    Mais ça ne correspond en rien à ta question ...!?

    @+

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 53
    Points : 0
    Points
    0
    Par défaut
    Merci bcp pour votre réponse chaleureuse.

    en effet je veux juste adapter un script perl qui existe déjà avec ce que j'ai écrit en Shell parce que je maîtrise malheureusement que le Shell.
    l'aidée après avoir bien réfléchi c'est juste :
    il y a un fichier info.txt ( extraction de le requête oracle )
    qui existe dans le répertoire /tmp .

    comment je peux faire un cat info.txt dans un script perl pour que je puisse faire un print dans le script.
    mon script perl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $message ="Bonjour,\n\nVoilà les informations .\n\nBonne réception";
    je veux mettre le contenu du fichier info.txt qui existe dans /tmp juste en dessous du message voila les informations.

    Merci Bcp encore une fois

  4. #4
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/usr/bin/perl
    use warnings;
    use strict;
    use utf8;
     
    #===================================================
    #
    # Votre code existant Perl ...
    # ...
    # et si j'ai bien compris
    # auquel vous souhaitez ajouter :
     
    my $message ="Bonjour,\n\nVoilà les informations .\n\nBonne réception";
    print $message;
     
    my @Cde = ("cat /tmp/info.txt");
    system @Cde;
     
    print "\n\nFin du résultat contenu dans le fichier /tmp/info.txt\n\n";
     
    #=================================
    # Si les infos sont toujours dans /tmp/info.txt, si vous ne souhaitez pas paramétrer...
    # Ca doit suffire ?

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 53
    Points : 0
    Points
    0
    Par défaut
    en effet je devrai envoyer par mail le contenu du fichier info.txt et pour cela l'envoie par email prend en charge que la partie my $message

    Où est ce que je peux rajouter le contenu du fichier dans ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $message ="Bonjour,\n\nVoilà les informations .\n\nBonne réception";
    Est ce que cela va suffire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    my @Cde = ("cat /tmp/info.txt");
    system @Cde;
     
    my $message ="Bonjour,\n\nVoilà les informations \n\n@Cde \n\nBonne réception";
    ca veut dire quoi system @Cde;
    Merci

    Citation Envoyé par dmganges Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #!/usr/bin/perl
    use warnings;
    use strict;
    use utf8;
     
    #===================================================
    #
    # Votre code existant Perl ...
    # ...
    # et si j'ai bien compris
    # auquel vous souhaitez ajouter :
     
    my $message ="Bonjour,\n\nVoilà les informations .\n\nBonne réception";
    print $message;
     
    my @Cde = ("cat /tmp/info.txt");
    system @Cde;
     
    print "\n\nFin du résultat contenu dans le fichier /tmp/info.txt\n\n";
     
     
     
    #=================================
    # Si les infos sont toujours dans /tmp/info.txt, si vous ne souhaitez pas paramétrer...
    # Ca doit suffire ?

  6. #6
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    @Cde est tout simplement un tableau.

    Dans notre cas il était possible d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system "cat /tmp/info.txt";
    J'ai pris l'habitude d'utiliser un tableau, c'est plus propre lorsqu'on doit formatter des variables et les inclure dans la commande...

    Pour l'envoi par mail, il me semble que l'utilisation des modules comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use Mail::IMAPClient;											# Pour accéder aux messageries
    use MIME::Parser;													# Pour parser le message
    ... Dans le programme Perl serait préférable...
    Mail::IMAPClient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @Cde = ("cat /tmp/info.txt"); system @Cde;
    Ne fait qu'éditer le fichier sur la console de l'utilisateur, si elle est ouverte...
    C'est un cat Unix, c'est TOUT !

  7. #7
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Sinon il faut lire le fichier /tmp/info.txt
    Ligne à ligne, ou mieux dans un tableau, puis concaténer @info à $message avant l'envoi...

    [EDIT:15:50]
    A la louche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #!/usr/bin/perl
    use warnings;
    use strict;
    use utf8;
     
    #===================================================
    #
    # Votre code existant Perl ...
    # ...
    # et si j'ai bien compris
    # auquel vous souhaitez ajouter :
     
    my $message ="Bonjour,\n\nVoilà les informations .\n\nBonne réception";
     
     
     
    open(FIC,"/tmp/info.txt") or die ...;
    my @info = <FIC> ;
     
    my @MySend = $message + @info + "\n\nFin du résultat contenu dans le fichier /tmp/info.txt\n\n";
     
    # mail de @MySend au lieu de $message
     close FIC;
    #=================================
    # Pas testé :)

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 53
    Points : 0
    Points
    0
    Par défaut
    j'ai cette erreur :

    Suntax error at ./mail.sh line 10 , near " ) my "
    la ligne 10 c'est
    my @info = <FIC> ;

    il y avait une erreur dans la ligne :
    open(FIC,"/tmp/info.txt") or die ...;
    j'ai laissé que : open(FIC,"/tmp/info.txt")

    Pouvez-vous m'aider svp avec une lumiére rayonnante

  9. #9
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Oups je pensais que vous ajouteriez vous même
    Le or die est déclenché s'il y a une erreur d'ouverture, ici un message est affiché sur la console, celle où on a lancé :
    perl monprogramme.pl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open(FIC,"/tmp/info.txt") or die "impossible d'ouvrir le fichier /tmp/info.txt\n $!";

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 53
    Points : 0
    Points
    0
    Par défaut
    pas de chance encore une petite erreur

    Can't locate object method "close" via package "filehandle" at ./mail.pl line 22 , <FIC> line 14
    la ligne soupçonné :Close FIC;
    j'ai fait comme ça mais c'est pareil toujours la méme erreur : Close (FIC);
    nom de variable : my @info=(FIC);

    Avez-vous une idée ?
    Merci beaucoup
    Citation Envoyé par dmganges Voir le message
    Oups je pensais que vous ajouteriez vous même
    Le or die est déclenché s'il y a une erreur d'ouverture, ici un message est affiché sur la console, celle où on a lancé :
    perl monprogramme.pl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open(FIC,"/tmp/info.txt") or die "impossible d'ouvrir le fichier /tmp/info.txt\n $!";

  11. #11
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    On peut voir le code ?
    Sinon on va jouer à cache cache jusqu'à l'année prochaine...
    Ce n'est plus très loin mais quand même !

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 53
    Points : 0
    Points
    0
    Par défaut
    Entendu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #!/usr/bin/perl
    my $from = 'email';
    my $subject = INFO;
    my $mime_type = 'text/plain';
    my $text = "Bonjour,\n\nCi-dessous les info .\n\nBonne reception";
    open (FIC,"tmp/info.txt ") or die "impossible d'ouvrir le fichier /tmp/info.txt\n $!";
    my @info=<FIC>;
    my @message = $text + $info + "Bonjour,\n\Ci-dessous les info .\n\nBonne reception";
    close <FIC>;
    my $mime_msg = MIME::Lite->new(
      From => $from,
      To   => 'email',
      Cc    => 'email',
    Subject => $subject,
      Type => $mime_type,
      Data => $message
      )
     or die "Error creating MIME body: $!\n";
    my $message_body = $mime_msg->body_as_string();
     
    $mime_msg->attr("content-type.charset" => "utf-8");
     
    MIME::Lite->send('smtp', '192.168.1.2', Timeout => 60);
     $mime_msg->send();
    exit;
    il y a des modification à faire ?


    Citation Envoyé par dmganges Voir le message
    On peut voir le code ?
    Sinon on va jouer à cache cache jusqu'à l'année prochaine...
    Ce n'est plus très loin mais quand même !

  13. #13
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Oui,
    en ligne 7 on met le contenu du fichier dans un tableau :
    Donc en dessous il faut prendre la totalité du tableau pour constituer le message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @message = $text + @info + "Bonjour,\n\Ci-dessus les info .\n\nBonne reception";
    et non
    Et :
    devient :
    Globalement ça devrait fonctionner ?

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 53
    Points : 0
    Points
    0
    Par défaut
    j'ai cette erreur sur la ligne close <FIC> :

    Type of arg 1 to close must be HANDLE (not <HANDLE>) at ./mail.pl line 22, near "<FIC>;"
    Execution of ./mail.pl aborted due to compilation errors.

    ligne 22 : close <FIC>;

    Citation Envoyé par dmganges Voir le message
    Oui,
    en ligne 7 on met le contenu du fichier dans un tableau :
    Donc en dessous il faut prendre la totalité du tableau pour constituer le message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @message = $text + @info + "Bonjour,\n\Ci-dessus les info .\n\nBonne reception";
    et non
    Et :
    devient :
    Globalement ça devrait fonctionner ?

  15. #15
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    close FIC;
    ou
    close (FIC);

    mais pas close <FIC>;

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 53
    Points : 0
    Points
    0
    Par défaut
    Merci il arrive finalement à envoyer les emails mais il n'envoie pas la totalité du contenu de fichier. il envoie que la premiére lettre :s.
    par contre le fichier contient 50 ligne. et il n'envoie méme pas le message Bonjour,\n\Ci-dessous les info .\n\nBonne reception";

    la syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    open (FIC,"tmp/info.txt ") or die "impossible d'ouvrir le fichier /tmp/info.txt\n $!";
    my @info=<FIC>;
    my @message = $text + $info + "Bonjour,\n\Ci-dessous les info .\n\nBonne reception";
    close <FIC>;
    il y a quelque chose à modifier ?

    Merci bcp pour votre soutien
    Citation Envoyé par dmganges Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    close FIC;
    ou
    close (FIC);

    mais pas close <FIC>;

  17. #17
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Data => attend un string et non un tableau donc il faut lire le fichier ligne à ligne pour constituer le message...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    my $text = "Bonjour,\n\nCi-dessous les info .\n\nBonne reception";
    open (FIC,"tmp/info.txt ") or die "impossible d'ouvrir le fichier /tmp/info.txt\n $!";
    while ( my $ligne = <FIC> ){
    	$text = $text + $ligne + '\n';
    }
    close FIC;
     
    my $message = $text + "\n\n\Ci-dessus les info .\n\nBonne reception";
     
    my $mime_msg = MIME::Lite->new(
      From => $from,
      To   => 'email',
      Cc    => 'email',
    Subject => $subject,
      Type => $mime_type,
      Data => $message
      )
     or die "Error creating MIME body: $!\n";

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 53
    Points : 0
    Points
    0
    Par défaut
    Pareil :s il n'envoie rien , il envoie un mail juste avec un chiffre et il n'envoie méme pas la variable $text et il parcourt pas le tableau

    (mail vide) et pas d'erreur.

    en effet c'est un fichier excel ( je viens de modifié l'extension de fichier ) vers XLS pour avoir plus de détail.

    il s'agit d'un fichier qui contient 8 colonne et 50 ligne par contre le script envoie juste la derniére colonne et pas la dérniére ligne.


    il manque un print par hasard ?

    peut-t-on faire la commande cat avec perl et l'inclure dans une variable ca va étre plus simple je pense ?

  19. #19
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Je n'ai pas pu faire de test, je n'ai pas le module MIME::Lite
    il n'est pas installable rapidement dans ma config avec ppm,
    plus souvenu par ActiveState sur mon Perl v5.12.4 ... !!!

    Dans l'immédiat je ne vois pas,

    1) essayez d'envoyer uniquement $text
    2) est-ce que vous avez déjà utilisé ce module, a t-il déjà fonctionné...

    [EDIT]
    Je ne comprends plus rien c'est quoi le fichier à envoyer ?
    Ce n'est plus le résultat d'un SQL ?

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 53
    Points : 0
    Points
    0
    Par défaut
    j'arrive à envoyer le $text tout seul par email
    par contre le contenu de fichier excel ( tableau ) je n'arrive pas à l'envoyer :s

    quand je rajoute le FIC avec le text il envoie rien. et quand j'enléve le FIC il envoie le message $ text.
    l'idée et d'envoyer le contenu du fichier /tmp/info.txt avec le message $text.
    il manque pas une déclaration SUB ? qui ce que vous en pensez ?

    EDIT : j'ai rajouté use strict;use warnings;

    j'ai plusieurs messages comme celui-la :

    Argument "5318;|S OK ;2013-11-01 00:..." isn't numeric in addition (+) at ./mail.pl line 23, <FIC> line 14.
    Argument "Bonjour,\n\nci-dessous les infos .\n\nbonne reception" isn't numeric in addition (+) at ./mail.pl line 26.


    Citation Envoyé par dmganges Voir le message
    Je n'ai pas pu faire de test, je n'ai pas le module MIME::Lite
    il n'est pas installable rapidement dans ma config avec ppm,
    plus souvenu par ActiveState sur mon Perl v5.12.4 ... !!!

    Dans l'immédiat je ne vois pas,

    1) essayez d'envoyer uniquement $text
    2) est-ce que vous avez déjà utilisé ce module, a t-il déjà fonctionné...

    [EDIT]
    Je ne comprends plus rien c'est quoi le fichier à envoyer ?
    Ce n'est plus le résultat d'un SQL ?

Discussions similaires

  1. Exécution d'un script shell sous perl
    Par ysahel dans le forum Langage
    Réponses: 1
    Dernier message: 12/08/2012, 10h39
  2. Script shell ou perl
    Par Jinkas dans le forum Programmation et administration système
    Réponses: 5
    Dernier message: 24/12/2010, 08h01
  3. écrire dans un script shell depuis perl
    Par painouch21 dans le forum Langage
    Réponses: 1
    Dernier message: 10/02/2008, 14h03
  4. Traduction script Korn shell en perl
    Par olemoine dans le forum Linux
    Réponses: 4
    Dernier message: 07/02/2008, 11h13
  5. [HTML & PERL] Appel d'un script shell
    Par mevardy dans le forum Web
    Réponses: 1
    Dernier message: 30/08/2006, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo