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

Une manière plus élégante d'écrire cela...

6 réponses
Avatar
Régine
Bonjour,

Je me demande si il n'existe pas une mani=E8re plus =E9l=E9gante d'=E9crire
cela:

$CONF1=3D$FORM{'CONF1'};
$CONF2=3D$FORM{'CONF2'};
$CONF3=3D$FORM{'CONF3'};
$CONF4=3D$FORM{'CONF4'};
$CONF5=3D$FORM{'CONF5'};
$CONF6=3D$FORM{'CONF6'};
$CONF7=3D$FORM{'CONF7'};
$CONF8=3D$FORM{'CONF8'};
$CONF9=3D$FORM{'CONF9'};
$CONF10=3D$FORM{'CONF10'};
$CONF11=3D$FORM{'CONF11'};
$CONF12=3D$FORM{'CONF12'};
$CONF13=3D$FORM{'CONF13'};
$CONF14=3D$FORM{'CONF14'};
$CONF15=3D$FORM{'CONF15'};
$CONF16=3D$FORM{'CONF16'};
$CONF17=3D$FORM{'CONF17'};
$CONF18=3D$FORM{'CONF18'};
$CONF19=3D$FORM{'CONF19'};
$CONF20=3D$FORM{'CONF20'};
$CONF21=3D$FORM{'CONF21'};
$CONF22=3D$FORM{'CONF22'};
$CONF23=3D$FORM{'CONF23'};
$CONF24=3D$FORM{'CONF24'};
$CONF25=3D$FORM{'CONF25'};
$CONF26=3D$FORM{'CONF26'};
$CONF27=3D$FORM{'CONF27'};
$CONF28=3D$FORM{'CONF28'};
$CONF29=3D$FORM{'CONF29'};
$CONF30=3D$FORM{'CONF30'};



Merci pour votre aide
Cordialement
G=E9rald

6 réponses

Avatar
Stéphane Zuckerman
On Tue, 18 Jul 2006, Régine wrote:

Bonjour,

Je me demande si il n'existe pas une manière plus élégante d'écrire
cela:

$CONF1=$FORM{'CONF1'};
$CONF2=$FORM{'CONF2'};
$CONF3=$FORM{'CONF3'};
$CONF4=$FORM{'CONF4'};
$CONF5=$FORM{'CONF5'};
$CONF6=$FORM{'CONF6'};
$CONF7=$FORM{'CONF7'};
$CONF8=$FORM{'CONF8'};
$CONF9=$FORM{'CONF9'};
$CONF10=$FORM{'CONF10'};
$CONF11=$FORM{'CONF11'};
$CONF12=$FORM{'CONF12'};
$CONF13=$FORM{'CONF13'};
$CONF14=$FORM{'CONF14'};
$CONF15=$FORM{'CONF15'};
$CONF16=$FORM{'CONF16'};
$CONF17=$FORM{'CONF17'};
$CONF18=$FORM{'CONF18'};
$CONF19=$FORM{'CONF19'};
$CONF20=$FORM{'CONF20'};
$CONF21=$FORM{'CONF21'};
$CONF22=$FORM{'CONF22'};
$CONF23=$FORM{'CONF23'};
$CONF24=$FORM{'CONF24'};
$CONF25=$FORM{'CONF25'};
$CONF26=$FORM{'CONF26'};
$CONF27=$FORM{'CONF27'};
$CONF28=$FORM{'CONF28'};
$CONF29=$FORM{'CONF29'};
$CONF30=$FORM{'CONF30'};



On peut passer par ce genre de choses :

#!/usr/bin/perl

use strict;
use warnings;

my $name = "CONF";

# histoire d'avoir quelque chose dans %FORM...
my %FORM = ();
for (1 .. 30)
{ # ou bien $FORM{$name . $_} = $_;
$FORM{"$name$_"} = $_;
}


{
no strict "refs";
for (1 .. 30)
{
${"$name$_"} = $FORM{"$name$_"};
}
}

# ... Et pour vérifier que ça fonctionne.
{
no strict "refs" ;
for (1 .. 30)
{
print ${"$name$_"}, "n";
}
}


--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)

Avatar
Nicolas George
"Régine" wrote in message
:
Je me demande si il n'existe pas une manière plus élégante d'écrire
cela:

$CONF1=$FORM{'CONF1'};
<snip>

$CONF30=$FORM{'CONF30'};


my @conf;
for(my $i = 1; $i <= 30; $i++) {
$cond[$i] = $FORM{"CONF$30"};
}

mais qu'est-ce que ça apporte ?

Avatar
Gérald
C'est vrai, cela n'apporte pas de grand boulversement mais^ça me donne
des idée pour la suite.
Mille merci
Cordialement
Gérald


"Régine" wrote in message
:
Je me demande si il n'existe pas une manière plus élégante d'éc rire
cela:

$CONF1=$FORM{'CONF1'};
<snip>

$CONF30=$FORM{'CONF30'};


my @conf;
for(my $i = 1; $i <= 30; $i++) {
$cond[$i] = $FORM{"CONF$30"};
}

mais qu'est-ce que ça apporte ?



Avatar
DoMinix
"Régine" wrote in message
:
Je me demande si il n'existe pas une manière plus élégante d'écrire
cela:

$CONF1=$FORM{'CONF1'};
<snip>

$CONF30=$FORM{'CONF30'};


my @conf;
for(my $i = 1; $i <= 30; $i++) {
$cond[$i] = $FORM{"CONF$30"};
^ conf ? ^ $i ?

}

mais qu'est-ce que ça apporte ?


for my $i( 1 .. 30 ) est plus perlien mais bon TIMTOWTDI :)

--
dominix


Avatar
Nicolas George
DoMinix wrote in message <44bdd8d2$0$691$:
for my $i( 1 .. 30 ) est plus perlien mais bon TIMTOWTDI :)


J'avais cru constater que certaines versions de perl allouaient
effectivement la liste à 30 éléments même dans cette circonstance, donc je
n'utilise jamais cette notation.

Avatar
espie
In article <e9l00p$3q3$,
Nicolas George <nicolas$ wrote:
DoMinix wrote in message <44bdd8d2$0$691$:
for my $i( 1 .. 30 ) est plus perlien mais bon TIMTOWTDI :)


J'avais cru constater que certaines versions de perl allouaient
effectivement la liste à 30 éléments même dans cette circonstance, donc je
n'utilise jamais cette notation.


Ca fait maintenant suffisamment longtemps que ce n'est plus le cas, et
ce n'est guere genant que pour des vraiment grosses listes de toutes
facons...