Ваш первый цикл:
foreach (@answer){
print "[$_]\n";
}
Итерирует по @answer
и помещает текущий элемент массива @answer
в $_
при каждом прохождении цикла.В результате вы получаете элементы @answer
, напечатанные в следующем порядке.
Ваш второй цикл:
foreach (@answer) {
print "$answer[$_]\n";
}
Выполняет ту же итерацию с теми же значениями в $_
.Но, и это большое, но вы печатаете $answer[$_]
и $_
- это строка каждый раз, и эта строка равна нулю в числовом контексте, поэтому вы эффективно делаете это:
print "$answer[0]\n";
четыре раза подряд.Следовательно, ваши четыре java
строки.И ваш второй фрагмент выборочного вывода пропустил символы новой строки между java
строками.