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 ;-)

Replies are listed 'Best First'.
Re^2: Interesting line which I read from Monk's snippets
by vennirajan (Friar) on Jan 31, 2006 at 05:16 UTC
    Hi tanktalus,

        Nice explanation.Thanks for your contribution to the Community.

    Regards,
    S.Venni Rajan.
    "A Flair For Excellence."
                    -- BK Systems.

Re^2: Interesting line which I read from Monk's snippets
by jesuashok (Curate) on Jan 31, 2006 at 04:46 UTC
    Hi

    Thanks a lot for your fantastic explanation.
    Amazing perl

    "Keep pouring your ideas"