Créer une fonction Perl

Préparation

Téléchargez le projet projet-perl.zip. Ce projet contient:

Le projet a été préparé pour Linux, mais il peut être adapté pour Windows et Mac OS en ajoutant les bibliothèques libpng et libjpeg.

Insérer l'algorithme de traitement

Insérez votre algorithme dans la fonction traiterImage de traitement.c. Vu que le projet n'est plus lancé comme programme, il n'y a plus de fonction main.

L'algorithme exemple retourne deux valeurs (cielBleu et nuit). Pour adapter cela, il faut

Alternativement, vous pouvez effacer les fichiers traitement.c et traitement.h, et insérer votre algorithme directement dans la partie C de projet.pl.

Lancer projet.pl

projet.pl contient du code Perl en haut, et le code C en bas. Grace au module Inline::C, chaque fonction C devient accessible depuis le code Perl.

Vous pouvez lancer ce script depuis le terminal:

			$$ ./projet.pl
		

Lors du premier démarrage du script, le code C est compilé, et stocké dans un sous-répertoire _Inline.

Behind the scenes

Inline::C compile le code C en bas du fichier, et génère l'interface Perl ↔ C nécessaire. Pour cela, il cherche les fonctions comme traiterImage, et génère le code qui transforme les paramètres Perl en paramètres C, et la valeur de retour C en valeur Perl.

Ceci ne marche que pour les types simples (int, double, char *, ...). Pour les structures, on doit faire cette transformation manuellement et passer une valeur Perl (SV *, AV *, ou HV *). Le dernier bout de code de la fonction projet crée un Perl hash avec le résultat du traitement.