У меня есть задание, в котором я должен создать сценарий Perl в Linux для имитации команды ifconfig
. Эта команда в основном показывает вам информацию о ваших сетевых интерфейсах. Я уже создал программу, но несколько строк вызывают у меня некоторые проблемы, я был бы признателен, если бы кто-нибудь мог исправить код для меня. Ошибки, которые я получаю, говорят, что $get_iface_data requires an explicit package name at line 8
, однако я не знаю, как это объявить.
#!/usr/bin/perl
use strict;
use warnings;
use Net::Int::Stats;
use Net::Ifconfig::Wrapper;
my $Iface = $ARGV[0];
my $rx_packets = $get_Iface_data->value($Iface, 'rx_packets');
my $Iface_Info = Net::Ifconfig::Wrapper::Ifconfig('list', '', '', '');
print "\tether ". $Iface_Info->{$Iface}{'ether'}."\n";
Мое задание в основном требует, чтобы я получил интерфейс в качестве входных данных и отобразил информацию об этом интерфейсе, как это сделала бы команда ifconfig
. Я также использовал два пакета, Net::Int::Stats
и Net::Ifconfig::Wrapper
. Единственная разница между моим сценарием и командой ifconfig
заключается в том, что моему сценарию потребуется интерфейс в качестве параметра.
$get_Iface_data
, и я думаю, вы не можете вызвать для него какой-либо метод. Строки не являются объектами в Perl, но строка — это то, что вы получаете отSTDIN
. - person matthias krull   schedule 18.04.2013