You're reading from the console via the <> operator. The script will only continue to the next file (as given via @ARGV) once the current file has been completely read. If you want to continue that dangerous road, you'll have to type an EOF (^Z on Win32, ^D on Unixish operating systems) after you've entered the IP address.
Let me suggest ditching the in-place-edit magic and reimplementing the loop yourself. That way, you can do away with the diamond-operator/@ARGV magic and use explicit filehandles. Maybe it's already enough to change hereistheip to the following:
sub hereistheip { print "Enter a valid server IP\n -->"; my $myip = <STDIN>; chomp $myip; return $myip; };
But I really think you're better off ditching the whole in-place approach and doing it yourself.
In reply to Re^7: Edit in place (part2)
by Corion
in thread Edit in place (part2)
by jzb
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |