Blech. That is really the sort of code that makes perl's bad reputation...
So what do we have ? here's my explanation : the enclosing "[]" force an anonymous array context. Inside we have 2 array elements :
scalar => [+{ -type => 'File::stat' }, qw/ name /], new => 'new',
The last one ( new => 'new') is clear enough. The first one is trickier : scalar is the hash key; let's analyse the content :
[+{ -type => 'File::stat' }, qw/ name /]
the enclosing square braces once again force an anonymous array. Inside there are two elements :
+{ -type => 'File::stat' }, qw/ name /
, the + force the following curly brace {} to be interpreted as an hash element and not a code block. so that's simply an anonymous hash entry.
"qw/name/" is just useless here because there's only one word...
Finally that's not very complex, just extremely obfuscated...
Here's what Data::Dumper can tell us about this structure, finally :
$VAR1 = { 'scalar' => [ { '-type' => 'File::stat' }, 'name' ], 'new' => 'new' };
It's way better, isn't it ?
update : I forgot to mention that this structure looks like a pseudo-hash.

In reply to Re: Could anyone explain the following Class::MethodMaker Code ? by wazoox
in thread Could anyone explain the following Class::MethodMaker Code ? by jesuashok

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.