Вы используете '
в качестве разделителя строк, но '
также отображается в строке.
Затем вы ошибочно возвращаете значение system в качестве выводакоманда.Когда команда не делает то, что вы ожидаете, прочитайте ее документы.
Вы также выполняете слишком много работы в командной строке.Вы уже находитесь в Perl, поэтому избегайте создания дополнительных процессов, когда вам не нужно:
my @interfaces = `/sbin/ifconfig` =~ m/^(\w+):/gm;
print "interfaces are @interfaces\n";
Если вам нужны только некоторые интерфейсы, добавьте туда grep
:
my @interfaces = grep { /^(?:eth|lo)/ } `/sbin/ifconfig` =~ m/^(\w+):/gm;
print "interfaces are @interfaces\n";
Мне нравится использовать полный путь к исполняемым файлам, чтобы я знал, какой из них я получаю.:)