thể trùng lặp:
When should I use the & to call a Perl subroutine?Sự khác nhau giữa & chức năng và function() trong perl
Trong kịch bản perl, tại sao là phương pháp gọi hàm được viết khác đi một số lần. Tôi thấy hàm & và đôi khi hàm(). Cả hai đều giống nhau và đây chỉ là một phong cách mà người ta muốn phô trương? Nếu họ là như nhau, tại sao cả hai đều có sẵn, sẽ không chỉ đủ? Tôi đoán có một số khác biệt ngữ nghĩa giữa cả hai phương pháp phân biệt chúng với nhau ... nhưng ở loại hoàn cảnh nào?
--- Vì tôi không thể trả lời câu hỏi của riêng mình vì lý do hết giờ - tôi đang cập nhật câu trả lời trong phần câu hỏi. Khi tôi có cơ hội cập nhật khối câu trả lời, tôi sẽ đặt nó ở đó.
Tôi đã tìm thấy văn bản có liên quan trong sách 'Học Perl'..thanks for the tip. Chương 4: Các chương trình con - Bỏ qua các ký hiệu.
Tôi quan tâm nhiều hơn đến dấu và & cách sử dụng cho các chức năng perl. Nếu một chương trình con đã được định nghĩa trước khi được gọi, thì chương trình con có thể được gọi mà không cần sử dụng & trong khi gọi hàm tương tự như gọi các hàm dựng sẵn. & cũng được sử dụng để phân biệt giữa hàm dựng sẵn và hàm do người dùng xác định nếu hàm được gọi sử dụng cùng tên của một hàm dựng sẵn, miễn là nó được xác định trước khi được gọi.
Việc sử dụng(), chỉ là để biện minh cho việc chuyển các đối số cho các chương trình con, trong khi nếu không được sử dụng, danh sách mặc định các đối số hiện tại được chuyển trong biểu mẫu @_. Nếu các đối số được xác định trong() cho một chương trình con, nó được giả định là một chương trình con và được gọi ngay cả khi không được định nghĩa trước đó trong khi phân tích cú pháp.
Xem [Sự khác biệt giữa gọi hàm là & foo và foo()?] (Http://perldoc.perl.org/perlfaq7.html#What%27s-the-difference-between-calling-a-function -as-% 26foo-and-foo% 28% 29% 3F) trong Câu hỏi thường gặp Perl 7. – manatwork
hi @manatwork, giải thích sự khác biệt giữa & foo và & foo() nhưng tại sao ký hiệu và được sử dụng ở tất cả nếu không cần thiết ... khi nó có cần thiết không? –
Trong phần Mô tả [perlsub] (http://perldoc.perl.org/perlsub.html) liệt kê khi nào là '&' tùy chọn. – manatwork