La voix du secrétaire (Jean)
Présents à la réunion :
Nous avons mangé des rillettes, des œufs mayonnaise, des blue-cheese-burgers, des tartiflettes, des spaghetti bolognese sans persil, des pavés de bœuf et une crème caramel. Nous avons bu de la Beamish, de la Stout, de la Pécheresse, de la Kriek, de la Kilkenny et autres bières et une margarita. Le serveur n'étant pas le même que la dernière fois, Emmanuel a obtenu une cinquante d'Orangina.
Nous avons parlé de Perl, Internet, informatique et le reste.
export PERL5OPT='-MACME::Code::Police'dans les bons fichiers .profile, on est sûr que tout le monde utilisera le module.
if ($x + 0 eq $x)[ En fait, il y avait une légère erreur dans le papier sur lequel Paul-Christophe et Philippe Bl ont discuté. Vous avez ici la version corrigée. ] BooK évoque le module Devel::Peek qui permet de fouiller dans les internes de Perl et de savoir si telle variable scalaire est un nombre ou une chaîne.
$h{+shift} = 1;Le problème, c'est l'insertion implicite de guillemets à l'intérieur des accolades indiquant une clé de hachage. Même avec des blancs, comme
$h{ shift } = 1;Perl considérera qu'il s'agit de la clé "shift". Pour que Perl considère que la clé du hachage est la valeur retournée par la fonction shift, il faut insérer un « + » à gauche du shift. Ou alors, utiliser des parenthèses :
$h{shift()} = 1;
%h = map { lc($_), 1 }, @liste;crée un hachage dont les clés sont les chaînes de @liste converties en minuscules. Les accolades sont interprétées ici comme des délimiteurs de bloc. À l'inverse
@loh = map +{ lc($_), 1 }, @liste;produit une liste de références à des hachages anonymes, chacun d'entre eux ne comportant qu'une seule clé. Les accolades, dans ce cas, sont interprétées comme un constructeur de référence de hachage. Il existe un autre exemple dans la documentation sur les références. Notamment dans le cas où une fonction doit renvoyer à l'appelant la référence à un hachage.
sub hashem { { @_ } } # mauvais mais on ne le sait pas sub hashem { +{ @_ } } # ok sub hashem { return { @_ } } # ok