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 :

Ecriture dans un fichier de code HTML. Qui ne si écrit pas.


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut Ecriture dans un fichier de code HTML. Qui ne si écrit pas.
    Bonjour,

    j'essaie actuellement de récupérer le contenue d'un fichier et de le transformer au format html. La premier partie s'effectue s'en souci par contre au moment ou j'essai d'écrire le fichier j'ai quelques soucis. La première partie fonctionne bien puis subitement. Perl me créé un fichier GLOB(0x183f108) avec le contenu de ce que je dois écrire dans "cachefile.tmp" et je ne comprends pas pourquoi.
    C'est pourquoi je vous demandes un peu d'aide.

    Si l'un de vous peux m'aider, merci d'avance.


    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
     
    my $cachefile="cachefile.tmp";
    print "GENEHTML\n";
    	my $line = ('<HEAD>'."\n".'');  # s'écrie bien dans le bon fichier
    	open my $cachefile, ">>", $cachefile or die logger (date()." : Impossible d'ouvrir $cachefile dans HTML,: $!\n");
        print $cachefile $line;
    	close $cachefile;
    	$line = "";
     
    	$line = ('<link rel="stylesheet" type="text/css" href="tableau.css">'."\n".'');  # NE s'écrie PAS le bon fichier
    	print $line;
    	sleep (1);
    	open $cachefile, ">>", $cachefile or die logger (date()." : Impossible d'ouvrir $cachefile dans HTML,: $!\n");
        print $cachefile ($line);
    	close $cachefile;
    	$line = "";
     
    	$line = ('<table summary="HMC et lpar details" class="servicesT" cellspacing="0">'."\n".'');  # NE s'écrie PAS le bon fichier
    	print $line;
    	sleep (1);
    	open $cachefile, ">>", $cachefile or die logger (date()." : Impossible d'ouvrir $cachefile dans HTML,: $!\n");
        print $cachefile ($line);
    	close $cachefile;
    	$line = "";
     
     
    	$line = ('</HEAD><HTML><BODY>'."\n".''); # s'écrie bien dans le bon fichier
    	open $cachefile, ">>", $cachefile or die logger (date()." : Impossible d'ouvrir $cachefile dans HTML,: $!\n");
        print $cachefile ($line);
    	close $cachefile;
    	$line = "";
    	print "FIN GENEHTML\n";

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    En simplifiant le code, ça ira déjà mieux . Attention à ne pas confondre la variable contenant le nom du fichier et le filehandle (ou descripteur de fichier).
    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
    my $cachefile = 'cachefile.tmp';
    my $ligne;
    open my $fh, '>>', $cachefile or die logger( date() . " : Impossible d'ouvrir $cachefile dans HTML,: $!\n" );
     
    print "GENEHTML\n";
    $ligne = "<HEAD>\n";    # s'écrie bien dans le bon fichier
    print {$fh} $ligne;
     
    # NE s'écrie PAS le bon fichier
    $ligne = '<link rel="stylesheet" type="text/css" href="tableau.css">' . "\n";
    print $ligne;
    sleep 1;
    print {$fh} $ligne;
     
    # NE s'écrie PAS le bon fichier
    $ligne = '<table summary="HMC et lpar details" class="servicesT" cellspacing="0">' . "\n";
    print $ligne;
    sleep 1;
    print {$fh} $ligne;
     
    # s'écrie bien dans le bon fichier
    $ligne = '</HEAD><HTML><BODY>' . "\n";
    print {$fh} $ligne;
     
    print "FIN GENEHTML\n";
     
    close $fh;

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut
    Bonjour et merci.

    Effectivement en lisant ton code je comprends mon erreur.
    Merci pour les corrections

    Je vais testé ça et je fais un peu retour.

    Encore merci.

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut
    Re-Bonjour

    J'ai reprise l'exemple plus haut mais j'obtiens un :
    Can't use string ("cachefile.tmp") as a symbol ref while "strict refs" in use at parse.pl line 135.

    Et j'arrive pas a m'en débarrasser

    Un peu d'aide svp

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par venturic Voir le message
    Re-Bonjour

    J'ai reprise l'exemple plus haut mais j'obtiens un :
    Can't use string ("cachefile.tmp") as a symbol ref while "strict refs" in use at parse.pl line 135.

    Et j'arrive pas a m'en débarrasser

    Un peu d'aide svp
    Pardon, c'est ma faute, reprend mon code ci-dessus, je l'ai corrigé.

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut
    Citation Envoyé par djibril Voir le message
    Pardon, c'est ma faute, reprend mon code ci-dessus, je l'ai corrigé.
    Pas de souci, j'aurais pu aussi comprendre, ce que j'ai lu partout hier que l'on écrit dans le filehandle (si je me trompe pas)
    Et corrigé ta petite faute.

    Merci encore de ta réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur dans mon code ecriture dans un fichier
    Par baderahmed dans le forum ASP.NET
    Réponses: 4
    Dernier message: 11/10/2010, 17h55
  2. [PHP 5.0] Code html qui apparait lors du téléchargement d'un fichier
    Par gxgxf dans le forum Langage
    Réponses: 2
    Dernier message: 23/07/2009, 09h10
  3. ecriture dans un fichier qui echoue..
    Par macsimus dans le forum Débuter
    Réponses: 8
    Dernier message: 21/11/2008, 14h19
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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