http://www.perlmonks.org?node_id=526657


in reply to Interesting line which I read from Monk's snippets

qw(a - b = c ~ d ^) creates a list: "a", "-", "b", "=", "c", "~", "d", "^". Put that in braces, and you are initialising an anonymous hash. Use the arrow to dereference that hash. The brace to the right shows what key to use to dereference the hash. The key to use is the substring of $0 (the program name) - starting at position 0, length of 1.

It's like this:

my %underline = ( a => '-', b => '=', c => '~', d => '^', ); my $first_letter = substr($0, 0, 1); my $pat = $underline{$first_letter};
Just a bit more concisely, and much less readably.

It's a cute trick, but I wouldn't recommend learning how to code from it ;-)