OVH Cloud OVH Cloud

eval + return = fin du monde

26 réponses
Avatar
luc2
#!/usr/bin/perl

use strict;

# bonjour, je pensais empecher la fin du monde en utilisant "return",
# mais j'ai echoue. je comprends a peu pres le pourquoi du comment,
# mais j'ai pas apprecie le piege...

sub fin_du_monde
{
eval
{
return "je quitte la fonction pour eviter la fin du monde\n";
};

return "destruction de l'univers\n";
}

print fin_du_monde;

6 réponses

1 2 3
Avatar
Erwan David
(Marc Espie) écrivait :

In article ,
Erwan David wrote:
Paul Gaborit écrivait :


En fait, ce qui manque à Perl 5, ce sont des ramasses-miettes plus
puissants (mais plus coûteux) qu'on pourrait activer au besoin (dans les
cas où les compteurs de référence couplés aux références faibles ne
suffisent pas ou dans les cas où le developpeur ne veut vraiment pas se
soucier de la gestion mémoire).



Un simple mark & sweep à 3 couleurs c'est pas couteux et ça marche (j'en
ai implémenté un en embarqué avec une mémoire de l'ordre de 64 ko).
Après on peut faire plus fin en le faisant génératif, temps réel ou
concurrent...



Erwan, comme souvent... Si c'est si facile a faire que ca, et si tu l'as
deja fait, qu'est-ce que tu attends pour nous filer un patch pour perl5.



Je l'ai fait il y a longtemps, mais pas pour perl. Ça teva mieux ?

Ah oui, j'oubliais, t'es pas paye pour ca.



Je ne fais pas que les trucs pour lesquels je suis payé, mais quand jene
suis pas payé je fais d'abord ce qui m'intéresse le plus. Et perl n'est
pas ma tasse de thé.


--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
espie
In article ,
Erwan David wrote:
Je ne fais pas que les trucs pour lesquels je suis payé, mais quand jene
suis pas payé je fais d'abord ce qui m'intéresse le plus. Et perl n'est
pas ma tasse de thé.



Pourquoi lis-tu ce groupe, alors ?
Avatar
Erwan David
(Marc Espie) écrivait :

In article ,
Erwan David wrote:
Je ne fais pas que les trucs pour lesquels je suis payé, mais quand jene
suis pas payé je fais d'abord ce qui m'intéresse le plus. Et perl n'est
pas ma tasse de thé.



Pourquoi lis-tu ce groupe, alors ?



Parceque j'ai parfois besoin de faire du perl...
Dereprendre quelque chose écrit en perl, de le modifier, d'y ajouter une
fonction...

Ce qui n'a rien à voir avec se plonger dans la mécanique interne de
l'implémentation de perl.


--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
espie
In article ,
Erwan David wrote:
(Marc Espie) écrivait :

In article ,
Erwan David wrote:
Je ne fais pas que les trucs pour lesquels je suis payé, mais quand jene
suis pas payé je fais d'abord ce qui m'intéresse le plus. Et perl n'est
pas ma tasse de thé.



Pourquoi lis-tu ce groupe, alors ?



Parceque j'ai parfois besoin de faire du perl...
Dereprendre quelque chose écrit en perl, de le modifier, d'y ajouter une
fonction...

Ce qui n'a rien à voir avec se plonger dans la mécanique interne de
l'implémentation de perl.



Par contre, sur un truc qui est du logiciel libre, je trouve relativement
discourtois de te moquer de l'implementation alors que tu dis que tu sais
faire mieux et que tu as deja fait mieux... t'as meme pas l'excuse du langage
vu que perl est pour l'essentiel ecrit en C.
Avatar
luc2
Le 16-09-2011, Denis Dordoigne a écrit :

Bonjour,

Ça ne prête à confusion que pour ceux qui ont des idées préconçues sur
le fonctionnement de 'return' et de 'eval'.



une grosse majorite quoi...



A priori la majorité de ceux qui ont appris à utiliser eval l'ont fait en lisant
la doc, et n'ont donc pas d'idées préconçues... D'ailleurs j'ai une question :
comment as-tui découvert eval, et d'après toi à qui ça sert ?



je pense plutot que la majorite n'a pas appris a utiliser eval. ils
connaissaient deja eval des autres langages, et donc, ne sont pas passes par la
doc. il y a ensuite les gens qui ont connu eval par un ami, et donc, ne sont
pas non plus passes par la doc. viennent ensuite les gens qui ont devine tout
seul que la directive dont ils avaient besoin commencait par un "e" et se
terminait par "val" (avec leur competence de divination 525/525), et qui sont
partis lire la doc sur ce mot. en dernier, il y a ceux qui sont alles lire la
doc en entier, parce qu'en general, on se contente de lire ce dont on a besoin,
et on zappe les autres paragraphes.

oui monsieur, les idees preconcues dominent le monde.
Avatar
luc2
Le 15-09-2011, Marc Espie a écrit :

Il existe de vrais pièges en Perl (commme dans tous les autres langages)
qui, eux, sont mal ou pas documentés du tout. Par exemple, le piège des
fuites mémoires liées aux références circulaires n'est qu'évoqué dans
perlref avec un renvoi vers perlobj qui l'explique un peu mieux mais ne
fournit pas de solution. Ça, c'est un vrai piège du langage difficile à
comprendre et difficile à résoudre.



ce n'est pas parce qu'il existe des pieges plus vicieux que celui-ci n'en est
pas un.



ce n'est pas parce que tu insistes que c'est un vrai piege que c'en est un.



tu cites ma phrase sans la mettre en defaut. au contraire, tu tentes d'utiliser
le meme genre d'argument contre moi, ce qui te fait involontairement valider
mon argument.
1 2 3