Bonjour,
j'ai un fichier contenu dans une variable.
Je traite cette variable afin d'obtenir la syntaxe d'un hash. Voila la variable:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 '{
  run0000 => {
    Cdum => "2*Cload",
    Cload => "5.000000E-12",
    IBIAS => "1.000000E-05",
    L_N1 => "2.000000E-07",
    L_N3 => "2.000000E-07",
    L_N5 => "2.000000E-07",
    L_N7 => "2.000000E-07",
    L_P1 => "2.000000E-07",
    L_P10 => "2.000000E-07",
    L_P3 => "2.000000E-07",
    L_P6 => "2.000000E-07",
    L_P8 => "2.000000E-07",
    PSRR => "0.000000E+00",
    RLOAD => "1.000000E+07",
    W_N1 => "1.000000E-05",
    W_N3 => "1.000000E-05",
    W_N5 => "1.000000E-05",
    W_N7 => "1.000000E-05",
    W_P1 => "1.000000E-05",
    W_P3 => "1.000000E-05",
    W_P6 => "1.000000E-05",
    W_P8 => "1.000000E-05",
    a => "2.000000E+00",
    b => "3.000000E+00",
    c => "4.000000E+00",
    corner => "slow_ss",
    e => "5.000000E+00",
    f => "7.000000E+00",
    fin => "1.000000E+04",
    xxx2 => "1.000000E+00"
  },
  run0001 => {
    Cdum => "2*Cload",
    Cload => "5.000000E-12",
    IBIAS => "1.000000E-05",
    L_N1 => "2.000000E-07",
    L_N3 => "2.000000E-07",
    L_N5 => "2.000000E-07",
    L_N7 => "2.000000E-07",
    L_P1 => "2.000000E-07",
    L_P10 => "2.000000E-07",
    L_P3 => "2.000000E-07",
    L_P6 => "2.000000E-07",
    L_P8 => "2.000000E-07",
    PSRR => "0.000000E+00",
    RLOAD => "1.000000E+07",
    W_N1 => "1.000000E-05",
    W_N3 => "1.000000E-05",
  xxx2 => "1.000000E+00"
  },
  run0002 => {
    Cdum => "2*Cload",
    Cload => "5.000000E-12",
    IBIAS => "1.000000E-05",
    L_N1 => "2.000000E-07",
    L_N3 => "2.000000E-07",
    L_N5 => "2.000000E-07",
    L_N7 => "2.000000E-07",
    L_P1 => "2.000000E-07",
    L_P10 => "2.000000E-07",
    L_P3 => "2.000000E-07",
    L_P6 => "2.000000E-07",
    L_P8 => "2.000000E-07",
    PSRR => "0.000000E+00",
    RLOAD => "1.000000E+07",
    W_N1 => "1.000000E-05",
    W_N3 => "1.000000E-05",
    W_N5 => "1.000000E-05",
    W_N7 => "1.000000E-05",
    W_P1 => "1.000000E-05",
    W_P3 => "1.000000E-05",
    W_P6 => "1.000000E-05",
  xxx2 => "1.000000E+00"
  },
  run0003 => {
    Cdum => "2*Cload",
    Cload => "5.000000E-12",
    IBIAS => "1.000000E-05",
    L_N1 => "2.000000E-07",
    L_N3 => "2.000000E-07",
    L_N5 => "2.000000E-07",
    L_N7 => "2.000000E-07",
    L_P1 => "2.000000E-07",
    L_P10 => "2.000000E-07",
    L_P3 => "2.000000E-07",
    L_P6 => "2.000000E-07",
    L_P8 => "2.000000E-07",
    PSRR => "0.000000E+00",
    RLOAD => "1.000000E+07",
    W_N1 => "1.000000E-05",
    W_N3 => "1.000000E-05",
    W_N5 => "1.000000E-05",
    W_N7 => "1.000000E-05",
  vstep => "5.000000E-01",
    xxx2 => "1.000000E+00"
}
}';
J'utilise alors la fonction eval afin d'acceder a certain element par la suite.
Cela a l'aire de fonctionner mais lorsque je veux afficher un element alors j'ai une erreur.
Voila ce que je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
my $hashref;
    $hashref = eval($content);
    print $hashref->{run0001}{Cdum} ;
et voila alors l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Can't use string ("{
  run0000 => {
    Cdum => "2*") as a HASH ref while "strict refs" in use at /home/mercoiro/AVEdev/avenue/bin/avp2auditor.pl line 331.
En effectuant des recherches je crois avoir compris que ma variable n'est pas consideree comme un hash.
Pourtant quand je fais le test dans un code a part en declarant directement un hash de cette forme, la requete permettant d'obtenir un parametre fonctionne.

Voila, si quelqu'un pouvait m'aider je lui en serai tres reconnaissant.
Merci d'avance