You might like to use strict; use warnings; with that and fix the syntax first. Note that because you are using hashes the order of the keys is not preserved unless you use tie magic. The following gets close to what you would like to see:
use strict;
use warnings;
my %host =
(
'ip1' =>
{
'tcp' =>
{
'21' =>
{
'state' => 'open',
'service' => 'ftp',
},
'80' =>
{
'state' => 'open',
'service' => 'web',
}
}
},
'ip2' =>
{
'tcp' =>
{
'23' =>
{
'state' => 'open',
'service' => 'telnet',
},
'80' =>
{
'state' => 'open',
'service' => 'web',
}
}
}
);
for (keys %host)
{
my %ip = %{$host{$_}{'tcp'}};
print "$_\n";
for my $port (keys %ip)
{
print " $port " . join ' ', map {$ip{$port}{$_}} keys %{$ip{$por
+t}};
print "\n";
}
}
prints:
ip1
21 ftp open
80 web open
ip2
23 telnet open
80 web open
Perl is Huffman encoded by design.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.