QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1289|回复: 0

请同仁们帮解答一些问题!小弟先谢过

[复制链接]
发表于 2004-2-11 16:47:13 | 显示全部楼层 |阅读模式
小弟刚学perl不久,请帮忙看看这个程序帮我解答一些问题!
#!/usr/bin/perl -w
use strict;
my $ip;
my $i;
my $j=0;
my $n=0;

if(-e "ip_dns.txt" and -w "ip-dns.txt"){
rename("ip_dns.txt","old.txt") or die "error:$!";
}
open(FILE,">ip_dns.txt") or die"open file error:$!";
open(NOUSE,">nouse.txt") or die "open file error:$!";
foreach $i (1..254){
$ip="192"."\."."168"."\."."0"."\."."$i";
my @cmd=`ping -a -n 1 $ip`;
if($cmd[3]=~/^Reply/){
my(undef,$hostname,undef)=split(/ /,$cmd[1],3);
if($hostname!~/(\d+\.\d+\.\d+\.\d+)/){
print "ip"." "."$hostname\n";
print FILE "$ip"." "."$hostname\n";
$n++;
}
}else{
print "$ip"." "."no use!"."\n";
print NOUSE "$ip"." "."未使用"."\n";
$j++;
}
}
print FILE "总共搜索到了$n个IP与DNS对应列!";
close FILE;
print NOUSE "总共有$j个IP地址未使用!";
close NOUSE;
其中
1。我对如何再perl中如何使用命令不清楚,@cmd是一个数组为什么能够执行ping呢?
2。还有就是返回值的问题?$cmd[3]是数组@cmd的元素为什么是ping的返回值呢?
3。这句话不懂my(undef,$hostname,undef)=split(/ /,$cmd[1],3);
4。就是对于一些出现在程序里的如$_和@_等等,他们有时是这个意思有时又是那个意思,请问在什么地方能够查到他们的用法
5。对于use中使用的模块,模块中所有的函数在linux下使用什么命令可以查到
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 09:49 , Processed in 0.044874 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表