La voix du secrétaire (Jean)
Présents à la réunion, en fonction de l'ordre d'arrivée :
Nous avons mangé des salades aux lardons, ou au Saint-Félicien, de l'andouillette, du poulet rôti, du paleron aux lentilles, des profiterolles, un dessert à base de banane et un crumble. Nous avons bu diverses bières, dont de la Lancelot, de la Pilsen et de la Leffe, ainsi que de la vodka et un Ricard.
Nous avons parlé de Perl, Internet, informatique et points divers.
use Readonly; Readonly my $JOURS_PAR_SEMAINE => 7; <a href='http://revealingerrors.com/google_miscalculator'>Readonly my $EIGHT_DAYS_A_WEEK => 1.14285714;</a> Readonly my $VIE_UNIVERS_RESTE => 42; Readonly my $VLA_LES_FLICS => 22;[ Notons que l'exemple du module,
$frobnication_factor = 42; #not ok use constant FROBNICATION_FACTOR => 42; #okenfreint une autre règle, l'interdiction d'utiliser le pragma constant. ] Mais il est extrêmement facile de contourner cette règle. Il suffit d'écrire :
Readonly my $QUARANTE_DEUX => 42; Readonly my $VINGT_DEUX => 22;[ voire utiliser Acme::MetaSyntactic. ] À propos, si vous définissez une constante $DIX, à quoi correspond-elle ? À 10 ou à 509 ? J'ai évoqué ce problème dans mon exposé sur les nombres romains (recherchez la chaîne « cacahuètes »).
($x, $y) = ($y, $x);Il souhaite échanger deux tableaux @a et @b, en traitant de façon particulière le premier élément de chaque tableau. Il commence par nous donner la première version de son script :
@a = qw/a b c/; @b = qw/d e f/; ($a[0], @a) = ($b[0], @b);Sauf qu'il n'y a pas de notion d'échange, la totalité de @b étant copiée dans la totalité de @a et les anciennes valeurs présentes dans @a étant perdues. Sautons sur la version suivante, que David ne nous a pas présentée,
(@a, @b) = (@b, @a),qui, de façon évidente, regroupe dans @a le contenu initial de @b et de @a, tout en vidant le contenu de @b. Pour éviter ce piège élémentaire, David nous propose :
($a[0], $b[0], \@a, \@b) = ($b[0], $a[0], \@b, \@a);Mais, comme le fait remarquer Olivier, les références introduites par \ ne peuvent pas se trouver en partie gauche d'une affectation. J'ai suggéré d'utiliser des typeglobs. Nous n'avons pas essayé ce code sur le portable de Jérôme, mais ultérieurement, j'ai essayé la version suivante :
@a = qw/a b c/; @b = qw/d e f/; ($a[0], $b[0], *a, *b) = ($b[0], $a[0], \@b, \@a); print join ' ', '@a =', @a, '@b =', @b, "\n";et j'ai obtenu :
@a = a e f @b = d b cainsi que David le pensait. Puis nous avons pensé à tort à un problème avec cette solution : nous avons cru pouvoir affirmer que les typeglobs ne fonctionnent qu'avec des variables de package, pas avec des variables my. En fait, c'est faux, la version suivante :
my @a = qw/a b c/; my @b = qw/d e f/; ($a[0], $b[0], *a, *b) = ($b[0], $a[0], \@b, \@a); print join ' ', '@a =', @a, '@b =', @b, "\n";donne exactement le même résultat.
use strict; #my $x = 1; { eval "my $x = 2"; print "$x\n"; } #print "$x\n";et ça plante en signalant que $x n'a pas été déclaré. Et si vous enlevez les dièses, le script affiche deux fois « 1 ». ]
Attention : contrairement à ce qu'on pourrait croire, ils ne mangent pas de perles...
Avatar a repris le scénario de Pocahontas et de Danse avec les Loups. C'est scandaleux ! Cameron n'a absolument pas fait un film original, il a repris un scénario déjà utilisé.Tandis que les autres pages web répliquent :
Ouais, et alors ? Ce n'est pas la première fois qu' un film réutilise la trame utilisée par un film précédent. Et dans certains cas, il arrive que le nouveau film soit meilleur que l'ancien. Cameron n'a pas cherché à dissimuler le fait que son scénario n'avait rien d'original. La véritable originalité du film, c'est les effets spéciaux et le relief numérique.Quoi qu'il en soit, j'ai déjà vu deux films en 3D, le Crime était presque parfait d'Hitchcock et Jaws 3, où le réalisateur a mis à profit le numéro de série 3 pour ajouter un « D ». Dans les deux cas, j'ai eu mal au crâne et j'ai fini de regarder le film en fermant un œil. Je n'irai pas voir Avatar en 3D et je ne suis pas sûr d'avoir envie de le voir en version plate.