프로그램이 특정 버전의 perl에서 실행되도록하려면 해당 버전의 perl에서 테스트합니다. 내 release 응용 프로그램의 기능은 실제로 업로드하기 전에 여러 perls에서 테스트합니다.
이렇게하려면 적절한 테스트 슈트가 있고 충분한 테스트를 작성해야합니다. 동시에 여러개의 perl 설치를 유지하는 것은 쉽습니다. Effective Perl Programming에 나와 있습니다.
Test::MinimumVersion 거의 작동하는 것처럼 들리지만 몇 가지 제한 사항이 있습니다. 그것은 단지 당신이 그것을주는 파일을 보았습니다 (그래서 당신이로드하는 것을 검사하지 않을 것입니다), 그리고 실제로 그것이 정규식 패턴을 들여다 보지 않는다고 생각합니다. ,
#!perl
use Perl::MinimumVersion;
my $p_flag = <<'SOURCE';
'123' =~ m/[123]/p; # 5.10 feature
SOURCE
my $named_capture = <<'SOURCE';
'123' =~ m/(?<num>[123])/; # 5.10 feature
SOURCE
my $r_line_ending = <<'SOURCE';
'123' =~ m/[123]\R/p; # 5.12 feature
SOURCE
my $say = <<'SOURCE';
say 'Hello';
SOURCE
my $smart_match = <<'SOURCE';
$boolean = '123' ~~ @array;
SOURCE
my $given = <<'SOURCE';
given($foo) {
when(/123/) { say 'Hello' }
};
SOURCE
foreach my $source ($p_flag, $named_capture, $r_line_ending, $say, $smart_match, $given) {
print "----Source---\n$source\n-----";
my $version = Perl::MinimumVersion->new(\$source )->minimum_version;
print "Min version is $version\n";
}
는 소스가 이미 제공한다는 힌트를 찾기 때문 Perl::MinimumVersion 작품이 이유의 일부, 같은 use 5.010
: 이들 각각은 그 중 하나에 대해 사실이 아니다있는 최소 버전은 5.004 것을보고 및 use feature
등등. 그러나 이것이 기능을 활성화하는 유일한 방법은 아닙니다. 그리고 누군가가 수 표를 추가 할 때까지 적어도 /p
플래그와 같은 것을 누락합니다. 그러나 PPI 솔루션을 사용하면 항상 그런 식으로 쫓을 것입니다.
그냥 컴파일하고 테스트를 실행하고 알아내는 것이 더 쉽습니다.
참조 : http://stackoverflow.com/questions/2500892/how-can-i-test-when-a-feature-was-added-to-perl – mob