Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Pointeur de fonction et équivalent du eval en BASH

0 views
Skip to first unread message

ebrnospam

unread,
Oct 6, 2008, 3:34:45 PM10/6/08
to
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

Marc Espie

unread,
Oct 6, 2008, 3:40:37 PM10/6/08
to
In article <48ea6857$0$19541$426a...@news.free.fr>,

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.

Paul Gaborit

unread,
Oct 6, 2008, 5:02:23 PM10/6/08
to

À (at) Mon, 06 Oct 2008 21:34:45 +0200,
ebrnospam <ebrn...@free.fr> é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/>

0 new messages