SPUG: Too long to find bug: Fat comma and assignment look similar, and have some similar meaning

Michael R. Wolf michaelrwolf at att.net
Thu Jan 14 09:07:02 PST 2010


This (distillation of a bug) took me way too long to notice,  
especially since it compiled OK without a warning.

     use warnings;
     use strict;

     my $x => rand;
     die 'Did you notice fat comma instead of assignment? Variable did  
not get set' unless defined $x;

In retrospect, what had me miss it was:
   1 - the visual similarity between '=' and '=>'
   2 - the similarity of meaning between "gets" (assignment) and "gets  
associated with" (fat comma's common use in creating hash key/value  
pairs)

Can you think of a good use of fat comma (or skinny comma, for that  
matter) in this context?  Or, framed differently, why shouldn't (or  
can't) it get a warning like "Strange mixture of declaration,  
stringification, and function call in void context"?

-- 
Michael R. Wolf
     All mammals learn by playing!
         MichaelRWolf at att.net






More information about the spug-list mailing list