0

我有一个任务,我应该在 linux 中创建一个 perl 脚本,该脚本将提供类似于 linux 命令“ifconfig”的输出。我已经开始编写脚本,但我反复遇到错误。我需要一些帮助来更正我的代码,以便它可以完全运行。该程序需要做的特别是需要一个边界。例如,当我运行脚本时,它会询问接口名称,如果我输入“eth0”这将是接口名称,然后它应该输出就像我输入命令“ifconfig eth0”一样。作业要求我使用这两个包 Net::Int::Stats 和 Net::Ifconfig::Wrapper。我到目前为止的代码如下。我真的很感激任何帮助

 #!/usr/bin/perl
use strict;
use warnings;
use Net::Int::Stats;
use Net::Ifconfig::Wrapper;

my $int            = 'eth0';
my $stat           = 'rx_packets';
my $Iface          = $ARGV[0];
my $get_Iface_data = Net::Int::Stats->new();
my $Iface_Info     = Net::Ifconfig::Wrapper::Ifconfig('list', '', '', '');

my $rx_packets  = $get_Iface_data->value($Iface, 'rx_packets');
while( my ( $Addr, $Mask ) = each %{ $Info->{$int}{'inet'} } ) { 
    print "\tinet $Mask $Addr"; 
}
4

1 回答 1

0

这是工作示例:

#!/usr/bin/perl
use strict;
use warnings;
use Net::Int::Stats;
use Net::Ifconfig::Wrapper;

my $Iface   = $ARGV[0];
my $get_Iface_data = Net::Int::Stats->new();
my $rx_packets  = $get_Iface_data->value($Iface, 'rx_packets');
my $Iface_Info = Net::Ifconfig::Wrapper::Ifconfig('list', '', '', '');
while( my ( $Addr, $Mask ) = each %{ $Iface_Info->{$Iface}{'inet'} } ) {
    print "\tinet $Mask $Addr\n";
}
于 2013-04-22T11:34:40.200 回答