- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一个例子来说明是我自己的概要 Test::Version
.
use Test::More;
use Test::Version 0.04;
# test blib or lib by default
version_all_ok();
done_testing;
done_testing();
上加上括号我可以简单地称呼它。但是,当我尝试调用
version_all_ok;
(注意:第一次尝试 Dist::Zilla::Plugin::Test::Version 以这种方式失败)我收到一个错误。为什么是这样?
Bareword "version_all_ok" not allowed while "strict subs" in use at t/release-test-version.t line 19.
#!/usr/bin/perl
BEGIN {
unless ($ENV{RELEASE_TESTING}) {
require Test::More;
Test::More::plan(skip_all => 'these tests are for release candidate testing');
}
}
use 5.006;
sử dụng nghiêm ngặt;
use warnings;
use Test::More;
eval "use Test::Version";
plan skip_all => "Test::Version required for testing versions"
if $@;
version_all_ok; # of course line 19, and version_all_ok() works here.
done_testing;
Test::Version 1.0.0
中提取的相关片段用于导出。
use parent 'Exporter';
our @EXPORT = qw( version_all_ok ); ## no critic (Modules::ProhibitAutomaticExportation)
our @EXPORT_OK = qw( version_ok );
1 Câu trả lời
从根本上说,因为 Perl 需要知道裸字表示函数调用,以便将其解析为函数调用。 Perl 可以通过两种方式学习这个有趣的事实:
&
前面加上或 ->
或附加 (...)
或两者。 Perl 将相信您知道您在说什么,并将裸字解析为函数调用,即使它还不知道它必须调用什么函数。 use
- 一个模块足以确保在正确的时间创建符号;你在 Test::Version
中做错了什么这样符号直到需要编译测试脚本之后才会被导出。 use
hiện hữu
đánh giá
内,这实际上将其延迟到执行时间。因此,符号
version_all_ok
当 Perl 尝试编译调用并崩溃时,它不可用。强制
đánh giá
编译时间应该足以使符号可用:
BEGIN {
eval "use Test::Version";
plan skip_all => "Test::Version required for testing versions"
if $@;
}
关于perl - 为什么 Perl 中的某些函数必须用括号调用而其他函数不需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6785462/
Nếu chương trình Perl của tôi sử dụng mô-đun Perl, làm thế nào để xác định vị trí tìm tệp chứa mã của mô-đun? Ví dụ, nếu chương trình chứa: sử dụng MyModule1; # Ví dụ 1 chúng ta
Tôi có một số số trong một tệp có định dạng khác nhau: 8,3, 0,001, 9e-18. Tôi đang tìm cách dễ dàng để đọc và lưu trữ chúng mà không làm mất đi độ chính xác. Việc này rất dễ thực hiện trong AWK, nhưng làm thế nào để thực hiện trong Perl? Tôi chỉ muốn
Tôi có một số số trong một tệp có định dạng khác nhau: 8,3, 0,001, 9e-18. Tôi đang tìm cách dễ dàng để đọc và lưu trữ chúng mà không làm mất đi độ chính xác. Việc này rất dễ thực hiện trong AWK, nhưng làm thế nào để thực hiện trong Perl? Tôi chỉ muốn
Tôi đang tự học Perl và đã cài đặt Strawberry trên hệ thống Windows 8 64-bit của mình. Dòng lệnh Strawberry dường như hoạt động tốt, tôi đã tạo một thư mục trong thư mục Strawberry trên ổ C
Tôi đã tìm thấy một lỗi trong mô-đun Perl IO::Socket::SSL mà tôi có thể sửa được, tuy nhiên, tôi lo ngại về việc thử nghiệm bản sửa lỗi. Tôi đã tải xuống gói nguồn từ Debian (vì tôi dự định tạo một gói Debian hoặc bản vá cho nó) và xem xét
Tôi có một tệp perl sử dụng hai mô-đun perl là A.pm và B.pm. Nhưng trong B.pm tôi cần gọi chương trình con của A.pm. Ngay cả khi tôi sử dụng nó trong A.pm và thử sử dụng nó, tôi vẫn nhận được lỗi không xác định.
Có cách nào để tải toàn bộ mô-đun khi chạy trong Perl không? Tôi nghĩ rằng tôi đã tìm ra giải pháp tốt với autouse, nhưng đoạn mã sau không biên dịch được: package tryAutouse2; use autouse 'tryAutouse2
Tôi đã từng viết nhiều mô-đun perl và một số chương trình perl độc lập, nhưng tôi chưa bao giờ xuất bản một chương trình perl đa tệp trước đây. Tôi có một chương trình perl sắp ở giai đoạn beta và sẽ được phát hành dưới dạng mã nguồn mở. Nó đòi hỏi một số dữ liệu
Tôi có 1 tập lệnh perl trong đó chúng tôi đã viết một số chương trình con. Ví dụ: # Try_1.pl main(); sub main{ --- --- check(); } check { -- --} Bây giờ,
Có vẻ như một số (nhiều?) mô-đun trên CPAN được triển khai một phần bằng C sử dụng XS, với khả năng quay lại triển khai perl thuần túy nếu cần. Mặc dù cách này rất thông minh, nhưng rõ ràng nó sẽ làm giảm hiệu suất và tôi muốn biết liệu điều này có xảy ra không để có thể khắc phục sự cố. Có một cái nào không?
Tôi còn rất mới với Perl. Tôi hy vọng có thể cài đặt một số gói từ perl, tôi đã làm như thế này: perl -MCPAN -e 'install VM::EC2' Tôi đoán là nó không thành công do sự phụ thuộc, nó hiển thị: Kết quả:
Cho một gói Perl Foo.pm, ví dụ như gói Foo; sử dụng strict; sub bar { # một số mã ở đây } sub baz { # thêm
Tôi có một trình tạo thử nghiệm được viết bằng Perl. Nó tạo ra các bài kiểm tra được kết nối với trình mô phỏng. Các bài kiểm tra được viết bằng Perl và kết nối với trình mô phỏng thông qua API của nó. Tôi muốn mã được tạo ra có thể đọc được bằng con người, nghĩa là tôi muốn nó được thụt lề và định dạng đúng cách
Tôi đang học Perl, là người dùng rất mới. Tôi có thể biết sự khác biệt giữa các mã Perl này không? #!/usr/bin/perl & #!/usr/bin/perl -w Câu trả lời hay nhất Đó không phải là mã perl, mà là
Tôi không nghĩ đây là một câu hỏi trùng lặp. Điều này dành riêng cho các tập lệnh đi kèm với mô-đun Perl. Thông thường, khi bạn cài đặt nhiều phiên bản Perl, bạn sẽ gắn thẻ các tệp thực thi perl với số phiên bản (perl5.32) để chúng có sẵn trong /whate
Tôi có một chương trình sử dụng mã hóa Blowfish trên một tệp và một chương trình perl thứ hai nhắc nhập mật khẩu để giải mã tệp thành chuỗi, tôi không muốn phải ghi mã nguồn đã giải mã vào ổ cứng, mặc dù việc lưu trữ trong bộ nhớ không thực sự là vấn đề vì đã chạy chương trình
Có ai tìm ra giải pháp tốt cho danh sách được đánh giá lười biếng trong Perl không? Tôi đã thử nhiều cách để thay đổi những thứ như $item ( map { ... } @list ) { } của tôi thành đánh giá lười biếng - ví dụ:
Tôi đã cài đặt nhiều phiên bản Perl. Tôi đã chỉ định phiên bản nào sẽ sử dụng. Nhưng để xác minh, tôi muốn xuất phiên bản Perl từ chính tập lệnh .pl. Liệu điều này có thể thực hiện được không? Phân tích cú pháp đầu ra của "perl --version" trong một tập lệnh Perl có vẻ như
Mọi người cũng thường hỏi "Làm thế nào tôi có thể biên dịch Perl?" khi điều họ thực sự muốn là tạo ra một chương trình thực thi có thể chạy trên máy tính ngay cả khi máy không cài đặt Perl. Tôi biết một số giải pháp sau: perl2exe IndigoStar Giải pháp này mang tính thương mại. Tôi chưa bao giờ thử
đóng cửa. Câu hỏi này dựa trên ý kiến. Hiện tại không chấp nhận câu trả lời. Bạn có muốn cải thiện câu hỏi này không? Cập nhật câu hỏi để khi chỉnh sửa bài đăng này, bạn có thể trả lời bằng các sự kiện và trích dẫn. Đã đóng 8 năm trước. Cải thiện điều này
Tôi là một lập trình viên xuất sắc, rất giỏi!