Trong Perl 5, khi chúng tôi có một mảng được đặt tên, ví dụ: @a
, nhận được các yếu tố từ chỉ số $N
trở đi là đơn giản với một chút slicing:Làm cách nào để lấy tất cả các phần tử từ chỉ mục N đến cuối từ một mảng Perl ẩn danh?
my @result = @a[$N..$#a];
Có cách nào tiêu chuẩn để làm tương tự với một mảng vô danh, mà không cần phải cung cấp độ dài một cách rõ ràng? I E. thể này:
my @result = (0,1,2,3,4,5)[2..5];
hay, cụ thể hơn, điều này:
my @result = (0,1,2,3,4,5)[$N..5];
được chuyển đổi sang một cái gì đó mà không cần phải giới hạn phạm vi trên là rõ ràng? Có lẽ một số cú pháp Perl mơ hồ? Có lẽ một chút dicing thay vì cắt?
PS: Tôi đã viết chức năng này như một chức năng - Tôi đang tìm cách tiếp cận độc lập hơn.
Nếu bạn muốn cắt một mảng vô danh của '(0,1,2,3,4,5) 'vào' 2 3 4 5', vậy tại sao không chỉ viết '(2,3,4,5) 'ngay từ đầu? –
@Blagovest Buyukliev: Bởi vì chỉ số bắt đầu trong trường hợp của tôi là biến. Tôi đã chỉnh sửa câu hỏi của mình để phản ánh yêu cầu này. – thkala
"mảng ẩn danh" là gì? :-) –