2013-07-09 15 views
11

Chỉ cần đọc trang này: https://github.com/book/perlsecret/blob/master/lib/perlsecret.pod, và thật sự bất ngờ với những điều khoản như:Các toán tử Perl được "phát hiện" và không được thiết kế?

Discovered by Philippe Bruhat, 2012. 
Discovered by Abigail, 2010. (Alternate nickname: "grappling hook") 
Discovered by Rafaël Garcia-Suarez, 2009. 
Discovered by Philippe Bruhat, 2007. 

và vân vân ...

Các nhà khai thác trên là KHÁM PHÁ, vì vậy họ không cố ý bởi perl-design?

Thats nghĩa hơn ở đây là khả năng hơn perl sill có một số nhân vật ngẫu nhiên trình tự gì trong thứ tự đúng làm điều gì đó hữu ích như "điều hành" ()x!!?

Có bất kỳ ngôn ngữ nào khác có số được phát hiện operatos không?

+1

C, C++, Perl và một số khác có [đến nhà điều hành] (http://stackoverflow.com/q/1642028/168657) – mob

Trả lời

13

Từ trang bạn liên kết:

Họ giống như các nhà khai thác theo nghĩa là những lập trình Perl thấy họ thường xuyên đủ để nhận ra chúng mà không cần suy nghĩ về phần nhỏ hơn của họ, và cuối cùng là thêm chúng vào hộp công cụ của họ. Và chúng là giống như bí mật theo nghĩa là chúng phải được phát hiện bởi người dùng tương lai của họ (hoặc được truyền bởi một lập trình viên), bởi vì họ không được ghi chép rõ ràng.

Đó là, họ không thực sự là nhà khai thác của riêng họ, nhưng chúng được tạo thành từ các nhà khai thác nhỏ hơn kết hợp để làm điều gì đó kết hợp.

Ví dụ: toán tử 'venus' (0+ hoặc +0) xác định đối tượng ở bên trái hoặc bên phải. Đó là những gì thêm không trong bất kỳ hình thức nào, "bí mật" nhà điều hành hay không.

+11

"Các toán tử bí mật không thực sự bí mật và chúng không thực sự là các toán tử Trình phân tích cú pháp perl không nhận ra chúng một cách cụ thể và không ai cố giấu chúng khỏi bạn. " –

4

Perl có một loạt các toán tử làm những việc đặc biệt, cũng như các ký tự thực hiện những điều đặc biệt khi được diễn giải trong một ngữ cảnh cụ thể. Thay vì đây là "nhà khai thác" thực tế (tức là, không được trình phân tích cú pháp Perl công nhận một cách rõ ràng), hãy coi chúng như là sự kết hợp của một số chức năng/hoạt động nhất định. Ví dụ: ()X!!, được gọi là toán tử "Doanh nghiệp", bao gồm () là danh sách, theo sau là x, là toán tử lặp lại, theo sau là !! (toán tử "bang bang"), thực hiện chuyển đổi boolean. Đây là một trong những lý do mà Perl rất biểu cảm.

Các vấn đề liên quan