in reply to Stupid mistakes I repeatedly make
I some times fall for the my ($self, $bar, $baz) = shift; bug, but there is another bug that catches me, especially when I start to consciously think about it instead of letting my fingers interpret my commands:
my $foo = 'bar'; $foo ~= s/a/ee/;
Of course, this is the reversed regex operator (which doesn't exist), and Perl sees this as a syntax error. ambrus taught me a good mnenonic - the negated comparison for the regex binding operator is !~, which has the same order as !=, and thus, the regex binding operator must be =~.
In a certain way this confusion when thinking about what my fingers should be doing reminds me of the problem that octopodes have when coordinating their arms, which, seemingly, they never do - they just send commands to them and then verify the behaviour by optical inspection.