We had another TechSocial Meeting in Vienna - taking place on 1st monday of every month. First Willy showed using Perl for emulating heavy (really tons of) hardware - very impressive. Second talk by domm was an intro to Perl 5.10.
The pub (remember TechScocial) did e.g. provide 'Perlhuhnbrust' on the menue, but we didn't ask if it were of the 5.10 persuasion.
The smart match operator lead to immediate discussion, whether there exists a 'not-smart-operator' or rather a 'smart-not-operator' or their combination:
/bar/; # not smart aka dumb match
Would this maybe match every
chicken or rather not?
/bar/; # smart no match
/bar/; # no dumb match
... which immediately lead to a discussion of the orthogonality of the
not operator, which generally was considered as very important. E.g. is this valid syntax, and what does it mean:
not my $var;
Semantically it's a promise not to use this variable in that scope. But perl has a different POV
$ perl -Mstrict -Mwarnings -le'not my $var'
Useless use of not in void context at -e line 1.
$ perl -Mstrict -Mwarnings -le'print not my $beer'
$ perl -Mstrict -Mwarnings -le'print ! my $beer'
... there are some 'true' items, which aren't your beer. But
$ perl -Mstrict -Mwarnings -le'print $_->ignore for not our @beer'
Can't call method "ignore" without a package or object reference at -e line 1.
... you can't actually ignore all of them.