1. Qu'est-ce qu'un fichier PET? PET est un accronyme pour Perl Embedded Templates (~ modèles de Perl embarqué). Basiquement, il s'agit d'un fichier ayant l'extension '.pet' qui respecte la syntaxe de PEE (voir the fichier SYNTAXE). 2. Qu'est-ce qu'un 'moteur'? Un moteur est quelquechose qui effectue une tâche répétitive, et qui le fait efficacement. Dans PEE, un 'moteur' est généralement ce qui compile et exécute les fichiers PET. 3. Comment je récupère les données d'une requête GET ou POST dans un PET? En utilisant le module CGI.pm, ou tout autre module. 4. Peut-on utiliser PEE avec mod_perl? Oui. Il existe un moteur expérimental pour une utilisation avec mod_perl. Lire le fichier INSTALL.modperl pour les instructions d'installation. 5. Tu dit qu'une expression Perl peut être utilisée entre '', mais c'est quoi une expression Perl? Une expression Perl est du code Perl dont l'évaluation est le résultat. Celle-ci n'est PAS terminée par un point-virgule (;). Des expressions sont par exemple '$var1', '1+3', '$a + $b' ou encore '&askname()'. 6. Puis-je avoir '?>' dans n'importe quel bloc PEE? Si tu as quelquechose comme: ' ?> PEE se trompera dans l'interprétation, terminant de manière prématurée le bloc de code tout en considérant le reste comme un bloc de texte. Il n'y a pas de mécanismes spéciaux, comme un échappement du type "\?\>', car cela introduirait une surcharge supplémentaire de l'analyse (syntaxique). C'est pourquoi on choisit un quelquechose d'aussi absurde que '?>'. Il existe de nombreuses façons de contourner ces situations: 1. $var = '?'.'>'; # concatène les deux caractères ensembles 2. $var = ' 7. Est-ce que la directive 'include' supporte plusieurs niveaux d'imbrications? Oui. Ceci est formellement supporté: Un fichier A inclut un fichier B, qui à son tour inclut un fichier C, et ainsi de suite. Toutefois, tu dois t'assurer qu'il n'y a pas de circuits d'inclusions (des boucles), du genre: Un fichier A inclut un fichier B, qui à son tour inclut encore le fichier A. Il te faudra tuer le processus d'engine.pl pour l'arrêter. 8. J'ai un message "malformed header from script" dans le fichier de journalisation d'erreurs d'Apache C'est généralement accompagné de l'erreure décrite dans la Q1. Cela se produit lorsque ton script n'a pas retourné une en-tête valide. Spécifiquement, la seule en-tête nécessaire est le type de contenu 'Content-type'. Apache essayes de déterminer si le type de contenu en observant les toutes premières lignes de la sortie du script, s'il y trouve ', il enverra l'en-tête 'Content-type' comme du 'text/html'. Pee ne vas pas afficher automatiquement les en-têtes HTTP pour toi. C'est pour conserver une compatibilité avec les scripts existants. 9. Mon navigateur m'affiche "Internal Server Error". Voir Q7. 10. Le fichier de journalisation du serveur web à des erreurs indescriptibles, comment je peux le débugger? Pee peut écrire une copie du code compilé dans un répertoire dédié. Pour profiter de cette fonctionnalité, tu peux éditer le fichier engine.pl et modifier l'appel à "new PEE::FileRunner" pour y inclure un second paramètre tel que: my $runner = Pee::FileRunner->new( "$template", {debug=>1, scratchdir=>'/tmp/pee'}); En s'assurant que '/tmp/pee' existes et que le serveur web peut y écrire (généralement 'nobody'). Pee convertira les '/' dans le nom du fichier modèle en des '_' ('/www/site/index.pet' devient '_www_site_index.pet'). C'est la meilleur façon de débugger tes fichiers modèles de PEE. 11. Qu'est-ce que les modules PEE::* ? Dois-je les utiliser? En règle générale, tu n'as pas besoin de les utiliser. Elles sont utilisées par le moteur pour compiler et exécuter les fichiers PET. 12. Ai-je besoin de mod_rewrite pour exécuter PEE? Plus maintenant. Depuis la version 1.03 il est recommandé d'utiliser la directive 'Action' d'Apache pour aboutir au même résultat. Lit le fichier INSTALL (ou INSTALL.*) pour des exemples de configuration.