所以我最初使用的是File
类型,但是由于类型验证失败,所以我将它切换到Dir
。但最终的路径是一个文件,所以我不确定我做错了什么。为什么这会返回一个Path :: Class :: Dir而不是文件?
use strict;
use warnings;
use namespace::autoclean;
# VERSION
use Moose::Role;
use MooseX::Types::Moose qw(Str);
use MooseX::Types::Path::Class qw(File Dir);
use File::ShareDir::PathClass;
has cybs_wsdl => (
required => 0,
lazy => 1,
is => 'ro',
isa => Dir,
builder => '_build_cybs_wsdl',
);
sub _build_cybs_wsdl {
my $self = shift;
my $wsdl = 'CyberSourceTransaction_1.62.wsdl';
my $file
= File::ShareDir::PathClass->dist_file(
'Business-CyberSource',
$wsdl
);
return $file;
}
注:最终路径是这样的:/home/ccushing/Business-CyberSource/.build/rzuQn5s899/blib/lib/auto/share/dist/Business-CyberSource/CyberSourceTransaction_1.62.wsdl
@xenoterracide,固定在1.112440 – ikegami