Giống như PHP, trong Perl cũng có mẫu `foreach` để sử dụng khi muốn duyệt từng phần tử trong list. Cú pháp: ```Perl foreach my $var (@list){ # các lệnh xử lý; } ``` Tuy nhiên, có một điểm cần lưu ý là biến `$var` lúc này là **alias** của từng phần tử trong `@list` mà nó đang duyệt đến. Do đó nếu `$var` bị thay đổi trong vòng lặp `foreach` thì phần tử trong `@list` mà `$var` đang duyệt tới cũng sẽ thay đổi. Ví dụ: ```Perl my @list = (1, 2, 3); foreach my $var (@list){ $var++; } print @list; #---- Kết quả ---- # 2, 3, 4 # ``` ###Ghi chú thêm: Phân biệt giữa Alias và Reference * Alias: * Tên gọi khác của một đối tượng (scalar, list, hash, function) nào đó. * Truy xuất đến Alias tương đương với việc truy xuất dữ liệu của đối tượng mà Alias đó đại diện. * Việc tạo một Alias của một đối tượng nào đó không làm phát sinh thêm bộ nhớ để lưu trữ dữ liệu, việc quản lý tên Alias sẽ do trình biên dịch xử lý (cái này chưa chắc). * Reference: * Tham chiếu (địa chỉ ô nhớ) trỏ đến một đối tượng nào đó. * Truy xuất đến Reference sẽ chỉ nhận được địa chỉ ô nhớ mà Reference đang trỏ tới. Nếu muốn lấy dữ liệu của đối tượng mà Reference đang trỏ tới thì cần phải thực hiện Dereference. * Việc tạo một Reference của một đối tượng sẽ làm phát sinh thêm bộ nhớ để lưu trữ địa chỉ ô nhớ trỏ tới đối tượng đó.