Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pointeur de fonction et équivalent du eval en BASH

2 réponses
Avatar
ebrnospam
Le titre est assez flou mais je l'espère l'exemple le sera moins.

Je dispose du code suivant qui me permet en fonction de l'encodage
choisit de pointer sur telle ou telle fonction.

$encodage='html';

$rsubtitre=\&html_titre;
$rsubfintitre=\&html_fintitre;
$rsubanglais=\&html_anglais;
$rsubfrancais=\&html_francais;
$rsubalias_francais=\&html_alias_francais;

On constate ici une répetition assez navrante de l'encodage, surtout
lorsque l'on sait que je dispose de 3 encodages.

J'aurai souhaité pouvoir écrire

$rsubtitre=\&${encodage}."_titre"
ou quelque chose comme ça (raison de ma question).

En BASH, il est possible d'utiliser la fonction eval pour de telle
péripétie par contre PERL, je l'ignore.

Pourriez vous m'aider ?

Merci

2 réponses

Avatar
espie
In article <48ea6857$0$19541$,
ebrnospam wrote:
Le titre est assez flou mais je l'espère l'exemple le sera moins.

Je dispose du code suivant qui me permet en fonction de l'encodage
choisit de pointer sur telle ou telle fonction.

$encodage='html';

$rsubtitre=&html_titre;
$rsubfintitre=&html_fintitre;
$rsubanglais=&html_anglais;
$rsubfrancais=&html_francais;
$rsubalias_francais=&html_alias_francais;

On constate ici une répetition assez navrante de l'encodage, surtout
lorsque l'on sait que je dispose de 3 encodages.

J'aurai souhaité pouvoir écrire

$rsubtitre=&${encodage}."_titre"
ou quelque chose comme ça (raison de ma question).

En BASH, il est possible d'utiliser la fonction eval pour de telle
péripétie par contre PERL, je l'ignore.

Pourriez vous m'aider ?

Merci



Fais de l'objet, ca sera plus simple...

plutot que d'avoir des fonctions a la con, style
html_fintitre,

tu auras un objet, disons $html, avec les methodes qui vont bien,
comme $html->titre, $html->fintitre

si tu t'amuses a faire du script shell en perl, forcement, ca va
etre moche.
Avatar
Paul Gaborit
À (at) Mon, 06 Oct 2008 21:34:45 +0200,
ebrnospam écrivait (wrote):
Je dispose du code suivant qui me permet en fonction de l'encodage
choisit de pointer sur telle ou telle fonction.

$encodage='html';

$rsubtitre=&html_titre;
$rsubfintitre=&html_fintitre;
$rsubanglais=&html_anglais;
$rsubfrancais=&html_francais;
$rsubalias_francais=&html_alias_francais;

On constate ici une répetition assez navrante de l'encodage, surtout
lorsque l'on sait que je dispose de 3 encodages.

J'aurai souhaité pouvoir écrire

$rsubtitre=&${encodage}."_titre"
ou quelque chose comme ça (raison de ma question).



$rsubtitre=&{$encodage."_titre"};

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>