muaddib2 has asked for the wisdom of the Perl Monks concerning the following question:

#!/usr/bin/perl use warnings; use Net::Ping; use Socket; print "Enter the subnet you wish to scan just the first 3 octet's\n"; $ipnumber =<STDIN>; chomp $ipnumber; @iparray = map $ipnumber. ".$_",1..254 ; print @iparray; #open (ERRORLOG, ">errorlog"); open (OFFLINE,">offline"); #my @iparray = qw( www.slashdot.org www.deja.com www.perlmonks.org ); my $proto = 'icmp'; my $def_timeout = '0'; my $bytes = '64'; my $p = Net::Ping->new($proto, $def_timeout , $bytes); foreach my $host (@iparray) { $| = 1; print "$host online \n" if $p->ping($host); print "$host offline \n" unless $p->ping($host,1); print "$host \n" unless $p->ping($host,1); } $p->close(); close OFFLINE; #close ERRORLOG; open (IPLIST, "offline"); #open (OFFLINEHOST, ">offlinehost"); @list=<IPLIST>; $list = @list; #print "@list\n"; chomp @list; my $i; my $peer_host; format STDOUT_TOP = IP# Machine name ---------------- ------------------------------------ . format STDOUT = @<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $i, $peer_host . foreach $i (@list) { $peer_host = gethostbyaddr(inet_aton($i), AF_INET); #$peer_host = gethostbyaddr(inet_aton($i), AF_INET); #print OFFLINEHOST "$peer_host and ipaddress $i\n"; #print OFFLINEHOST "$peer_host and ipaddress $i\n"; write } close OFFLINE;
For some reason it seems the format command splits the list why is that