Tôi vừa bắt đầu học Perl và tìm thấy bản thân mình cản trở bởi kết quả của khối mã sau đây:Hành vi của 'foreach' trong Perl
@x = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
foreach (@x) {
$x = pop (@x) ;
$y = shift (@x);
print ("$x $y \n");
}
Đầu ra là:
10 1
9 2
8 3
7 4
tôi đã mong đợi một dòng khác: 6 5
. Tại sao không có một dòng như vậy? Có phải vì sau khi lặp lại mà in 7 4
, số lượng các phần tử còn lại trong mảng bằng với số lần lặp đã hoàn thành, và như vậy theo như Perl có liên quan, vòng lặp được thực hiện?
Cảm ơn nneonneo. Lời giải thích của bạn về những gì xảy ra chính xác là những gì tôi cần phải hiểu. – verbose