Мне нужно сделать 3 массива из содержимого $directory
. Первый я могу использовать:Как создать массив содержимого каталога в Perl?
$var = qx{ls $directory};
print $var;
Однако второй и третий я хочу вычленить информацию «Primary *» и «* Вторичные»
я использовал команды:
my @primary = 0;
my @secondary = 0;
@primary = system("ls test_77 > test | grep Primary* test");
print @primary;
@secondary = system("ls test_77 > test | grep Secondary* test");
print @secondary;
НО, она включает в себя ноль на выходе:
PrimaryCPE_Option_A.txt.test_77
PrimaryCPE_Option_B.txt.test_77
0SecondaryCPE_Option_A.txt.test_77
SecondaryCPE_Option_B.txt.test_77
0
что это может быть? Сначала это выглядит как исходный ноль, но я могу изменить начальное значение, и он не работает.
Избегайте 'системы', используя Perl, когда это возможно. – aartist
Вы действительно собираете вывод ls в grep, или это то, что | действительно точка с запятой? Кажется странным перенаправить вывод ls в файл AND, и вывести его вывод в grep. – toolic