Tôi đang trong quá trình giảng dạy Perl tự của mình. Tôi đang sử dụng trình gỡ lỗi EPIC trong Eclipse. Bất cứ khi nào tôi có một var chỉ được sử dụng một lần trong một phụ tôi nhận được cảnh báo này:
Lỗi đánh máy thường hiển thị dưới dạng tên biến duy nhất. Nếu bạn có lý do chính đáng để có một tên duy nhất, thì hãy đề cập đến nó một lần nữa bằng cách nào đó để chặn thông báo. Tuyên bố C<our>
là được cung cấp cho mục đích này.
C<our>
là gì? Tìm kiếm chuẩn không xác định.Perl: Chính xác thì C <our> là gì?
Trả lời
As far as
C<>
phần có thể đã nhầm lẫn bạn, nó trông giống như EPIC mất một văn bản in POD format và in nó thô thay vì làm cho nó từ POD vào một văn bản định dạng.C<our>
trong cú pháp POD có nghĩa là "Văn bản in" được định dạng dưới dạng mã "của chúng tôi, thường có nghĩa là phông chữ đơn cách. Điều này tương tự như StackOverflow's`our`
backtick-surrounded format command câu hỏi của riêng bạn được sử dụng.Các lỗi bản thân xuất phát từ
diagnostics
mô-đun Perl, mà cung cấp lời giải thích mở rộng cho các cảnh báo Perl khác hơi khó hiểu (trong trường hợp này, "Name '% s ::% s' được sử dụng một lần duy nhất: có thể typo"). Như một vấn đề của thực tế, đánh giá từ định dạng POD mà nhầm lẫn bạn, EPIC có thể sử dụng source POD from which the above-linked "perldiag" document was generated.Nếu bạn đang hỏi
our
làm gì, bạn nên đọc perldoc -f our - đó là cách tạo bí danh thành biến toàn cầu có hiệu lực trong phạm vi nhất định (xem chi tiết của tchrist).Theo như kỹ thuật googling trong trường hợp này, khi bạn đang tìm kiếm cụ thể cho những gì bạn mong đợi là từ khóa Perl, nó luôn trả tiền cho google cho "perldoc someKeyword".
@Daxim - cảm ơn! – DVK
Điều đó không đúng. 'our' không thể khai báo một biến như một phần của gói hiện tại. Nó khai báo một từ vựng là một phần của ** điểm ** hiện tại, cung cấp một bí danh vào biến gói cùng tên. Nhưng từ vựng là một phần của phạm vi, không phải là một gói, và do đó giữ lại ràng buộc bí danh của nó ngay cả khi bạn thay đổi các gói. 'gói bên ngoài; $ Outer :: Var = 10; $ Var của chúng tôi; gói bên trong; $ Inner :: Var = 20; nói $ Var; 'hoạt động tốt để có được 10 chữ in, không phải 20. Điều này cũng có nghĩa là bạn không thể thực hiện thủ thuật đánh bóng từ vựng thông thường của' my $ var = 10; {my $ var = $ var * 2; ...} '. Xem tất cả những gì hoạt động? – tchrist
@tchrist - Tôi hy vọng bạn có nghĩa là ** phạm vi ** hiện tại và không phải * điểm * hiện tại, nếu không tôi sẽ hoàn toàn bối rối. Nếu nó chỉ là một lỗi đánh máy và không phải một số thuật ngữ perl sâu tôi chưa bao giờ nghe nói về trước đây, bạn hoàn toàn đúng. Lý do duy nhất của tôi là tôi không bao giờ sử dụng "của chúng tôi" theo những cách ưa thích như vậy (vì hầu hết mã Perl của tôi phần lớn là OO, nơi cách tiếp cận như vậy sẽ là thiết kế xấu). – DVK
Đây là thông báo Perl::Critic
đề xuất bạn có thể sử dụng our $var;
để định nghĩa biến :-) vì lý do được mô tả.
Bạn có chắc đây là từ Perl :: Critic chứ không phải là 'diagnostics'? – DVK
'của chúng tôi' không nói, xác định một biến. Nó cung cấp một bí danh lexically scoped mới cho một biến toàn cục hiện có. Điều đó có nghĩa là '$ x = 10' và' $ Big_X = 100' của chúng ta làm những điều rất khác nhau: xem xét điều gì xảy ra khi ở một khác, có lẽ phạm vi lồng nhau chúng ta có 'my $ x = 20' và' $ Big_X = 1_000 '. Đó là biến riêng tư hoàn toàn mới có tên '$ x', nhưng gói global' $ Big_X' chỉ thay đổi giá trị của nó. – tchrist
our
là một bí danh được thuật toán từ vựng đến biến toàn cầu.
- 1. Chính xác thì "xử lý" là gì?
- 2. Chính xác thì khóa ngoại là gì?
- 3. Chính xác thì Apache Karaf là gì?
- 4. Chính xác thì Windows AppFabric là gì?
- 5. Chính xác thì Rake là gì?
- 6. Chính xác thì n Gram là gì?
- 7. Chính xác thì $ match trong Perl là bao nhiêu?
- 8. Chính xác thì các bộ tuples bằng Python là gì?
- 9. Chính xác thì $ (...). Map() trả về là gì?
- 10. Chính xác thì đường dẫn tăng thêm là gì?
- 11. Chính xác thì Nhà máy Lớp là gì?
- 12. Chính xác thì "dịch vụ WPF" là gì?
- 13. Chính xác thì Windows Azure Instances là gì?
- 14. Chính xác thì "loại generic mở" trong .NET là gì?
- 15. Chính xác thì removeOnCompletion = NO làm gì?
- 16. Chính xác thì org.apache.commons.lang.builder.CompareToBuilder làm gì?
- 17. Chính xác thì gì -march = native làm gì?
- 18. Chính xác thì hàm băm liên quan đến JSON là gì?
- 19. Chính xác thì Attach() làm gì trong Entity Framework?
- 20. Chính xác thì git rebase --skip làm gì?
- 21. Chính xác là gì?
- 22. Chính xác thì tệp lô này phải làm gì?
- 23. Chính xác thì streambuf là gì? Làm thế nào để tôi sử dụng nó?
- 24. Chính xác thì một câu lệnh trả về làm gì trong C#?
- 25. trong perl (v5.14.2), tại sao bản đồ {+0,0}() chính xác nhưng bản đồ {0,0}() thì không?
- 26. Chính xác thì dấu ngoặc kép xung quanh tên bảng là gì?
- 27. Chính xác thì thông điệp 'Đang chờ phản hồi' trên tab Net của Firebug là gì?
- 28. Chính xác thì "IE5 quirks" trong IE 10 Developer Tools là gì?
- 29. Chính xác thì sản phẩm được sản xuất bởi Opa là gì?
- 30. Chính xác thì các tệp DLL là gì và chúng hoạt động như thế nào?
Khi bạn nói "tìm kiếm chuẩn không xác định", bạn có thử gõ [perldoc -f của chúng tôi] (http://perldoc.perl.org/functions/our.html) không? – Ether
@Ether - không phải mọi người đều biết về (hoặc thậm chí có quyền truy cập vào) dòng lệnh perldoc. Hầu hết mọi người chỉ là Google. – DVK
@Cooter => trong khi thêm ''' vào khai báo biến có thể ngăn chặn cảnh báo, lý do bạn nhận được nó là do biến chỉ được sử dụng một lần trong chương trình của bạn. Đây có thể là lỗi trừ khi bạn đang chơi trò chơi với các tham chiếu tượng trưng hoặc truy cập bảng biểu tượng trực tiếp (bạn không nên thực sự thực hiện khi học các kiến thức cơ bản về ngôn ngữ). Bạn có thể đăng khối mã tạo cảnh báo không? –