Però se al posto di pippo metto $pippo (globale anziché locale)
funziona anche da ruby anziché irb:
my_var_name = "$pippo"
my_value_name = '"abcd"'
eval "#{my_var_name} = #{my_value_name}"
puts $pippo
Dunque è vero che la variabile pippo nasce e muore all’interno del
contesto della eval.
A questo punto forse conviene fare:
my_var_name = “pippo”
my_value_name = ‘“abcd”’
eval “def #{my_var_name}; #{my_value_name}; end”
puts pippo
dove cavolo mi mantiene quel contesto?!
C’è anche self.instance_eval che funziona:
my_var_name = “pippo”
my_value_name = ‘“abcd”’
eval("#{my_var_name} = #{my_value_name}")
eval “puts pippo” # ok
self.instance_eval “puts pippo” # ok
puts pippo # errore in ruby ma non in irb !!!
Comunque c’è davvero qualcosa che non quadra; altro esempio:
my_var_name = “pippo”
my_value_name = ‘“abcd”’
Object.module_eval “attr_accessor :#{my_var_name}”
eval("#{my_var_name} = #{my_value_name}")
puts pippo # ruby restituisce “nil” !!!
eval “puts pippo” # ruby restituisc2 pippo !!!
alf
Direi che e’ tutta colpa di Federico che fa domande strane
On 5/2/06, Alfonso M. [email protected] wrote:
eval “puts pippo” # ok
eval(“#{my_var_name} = #{my_value_name}”)
–
Chiaroscuro
Liquid Development: http://liquiddevelopment.blogspot.com/
Ok, adesso abbiamo capito come replicare l’errore in irb ma non ho
capito come posso ottenere la variabile pippo in uno script ruby senza
ottenre un bell’errore
“Federico G.” [email protected] writes:
Sul mio linux mi lascia dubbioso …
se provo istruzione per istruzione in irb mi funziona che è un piacere
ma se metto le stesse istruzioni (copia & incolla, sbaglio una volta e
poi imparo ) in un file eval.rb e provo a eseguirlo con ruby
eval.rb ottengo anche io l’errore
eval.rb:5: undefined local variable or method `pippo’ for main:Object
(NameError)
Si infatti. Cerca su http://www.rubycentral.com/book/irb.html alla
voce “Restrictions”. Puoi replicare l’errore su irb con
begin
my_var_name = “pippo”
my_value_name = ‘“abcd”’
eval “#{my_var_name} = #{my_value_name}”
puts pippo
end
Ciao
prova con il metodo del martellone che ti avevo mandato. a me funziona.
On 5/2/06, Federico G. [email protected] wrote:
ma se metto le stesse istruzioni (copia & incolla, sbaglio una volta e
my_var_name = “pippo”
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
–
Chiaroscuro
Liquid Development: http://liquiddevelopment.blogspot.com/
non ho seguito bene il thread, ma so che eval può prendere come secondo
parametro anche un oggetto Binding… magari vi viene qualche idea
usando
quello…
On 5/2/06, chiaro scuro [email protected] wrote:
“Federico G.” [email protected] writes:
(NameError)
puts pippo
Chiaroscuro
Liquid Development: http://liquiddevelopment.blogspot.com/
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
–
Paolo Donà
email me: paolo[dot]dona[at]gmail[dot]com
skype me: paolo[dot]dona
provato, non funzia.
On 5/2/06, Paolo Donà [email protected] wrote:
ma se metto le stesse istruzioni (copia & incolla, sbaglio una
voce “Restrictions”. Puoi replicare l’errore su irb con
[email protected]
Ml mailing list
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
–
Chiaroscuro
Liquid Development: http://liquiddevelopment.blogspot.com/
On 5/2/06, Massimiliano M. [email protected] wrote:
Dunque è vero che la variabile pippo nasce e muore all’interno del
contesto della eval.
Ipse dixit:
http://groups.google.com/group/comp.lang.ruby/msg/422ad5daee216181
Beh, questa è una risposta ammazza thread
Ipse dixit:
http://groups.google.com/group/comp.lang.ruby/msg/422ad5daee216181
Beh, questa è una risposta ammazza thread
L’ammazzathread era un pochino più avanti:
You don’t have to agree here. Each language designer have different
point of view. I’m not going to change my mind by your “should”.
Ciò però ci costringe o alle martellate, o ad usare variabili “non
locali” ($pippo)
alf
Dunque è vero che la variabile pippo nasce e muore all’interno del
contesto della eval.
Ipse dixit:
http://groups.google.com/group/comp.lang.ruby/msg/422ad5daee216181
–
Ever wondered who’s on the other side of the screen?
http://buzz.sameplace.cc
Do flatlanders dream of n-dimensional shapes?
http://blog.hyperstruct.net