Now we're talking my language... networking and network penetration testing :)

The return you get is definitely a reference to a hash, but it is a blessed() hash, meaning it is an object (aka instance of a class (package)).

Per the SYNOPSIS of perldoc Nmap::Scanner, we see that: $results is an instance of Nmap::Scanner::Backend::Results.

What you're doing to extract the parts of the return are typical for a hash, but if you can specify what exactly you're trying to do, it may help us sort out a different/better/cleaner way. For the most part, you want to use the object's methods to extract the data you need (if the class has the methods to do so) instead of opening the object up like a can of tuna. Not all classes have such methods available though (and if this one doesn't, I've found my module to work on) :)

You might be interested to read Nmap::Scanner::Backend::Results documentation and the rest of the sub-modules for methods that may allow you to extract the info you need using the object's built-ins. (Nmap::Scanner module listing).

Beyond that, again, state what it is you need out of the object.

-stevieb


In reply to Re: Parsing output from Nmap::Scanner with varying hash address. by stevieb
in thread Parsing output from Nmap::Scanner with varying hash address. by mopmeat

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.