У меня есть довольно большой массив, и я хочу удалить 2-й, 8-й, 14-й и т. Д. Элементы из массива. Мой массив в данный момент выглядит так:Как удалить элементы из массива Perl?
Element1 x A B C
Element 2 y A B C
Element 3 z A B C
В целом, я хочу, чтобы удалить х, у и г (только в качестве примера, мой массив slighly более сложный). И вытащить остальное. Как и в, я не хочу иметь пустое место на своих позициях. Я хочу получить:
Element 1 A B C
Element 2 A B C
Element 3 A B C
Я попытался дать этому попытку с моим массива «todelete»:
print "#Before Deleting"; print
$todelete[0]; print "\n"; print
$todelete[2]; print "\n"; print
$todelete[3];
for ($count=2; $count<@todelete;
$count=$count+6) { delete
$todelete[$count]; }
print "#After Deleting"; print
$todelete[0]; print "\n"; print
$todelete[2]; print "\n"; print
$todelete[3];$todelete[3];
Но, в настоящее время, я думаю, что это просто unitializes свою ценность, потому что, когда Я печатаю результат, он говорит мне:
Use of uninitialized value in print
Предложения?
Ваш удивительный! Большое спасибо! – poutine
@poutine: кто-то потрясающий, потому что они прочитали [основную документацию, прилагаемую к каждой установке perl] (http://perldoc.perl.org/functions/splice.html)? Разве это не означает, что панель немного ниже? – Ether
А ... но теперь у меня другая проблема, так как индекс сдвинут. Элемент, мне нужно удалить уже не на позиции 8. Его сейчас в позиции 7. Ах .. и то же самое для остальных. Я думаю, что лучшей альтернативой было бы просто удалить элемент, затем использовать фильтр, а затем объединить их. Эфир ... справа. На короткое мгновение, когда я подумал, что это сработало, я был поражен. Так как я потратил много времени, чтобы подумать об этом с точки зрения цикла for. – poutine