Params :: Validate를 사용하여 원하는 방식으로 작동하는 데 문제가 있습니다.정의되지 않은 값이 전달되면 Params :: Validate로 기본값 설정
#!/usr/local/bin/perl -w
use strict;
use Params::Validate qw/:all/;
use Data::Dumper;
sub foo {
my %args = validate(@_, {
bar => {
default => 99,
# TODO - Somehow use a callback to return a default if undefined
# ??!!??
# callbacks => { call_me => sub { return 99 if !defined shift }},
},
});
# $args{bar} //= 99; # Don't want to define default in 2 places
print Dumper(\%args);
}
foo({ bar => undef });
그래서 어떻게 args 목록에서 undef를 설정하고 Params :: Validate로 '기본'값으로 바꾸는가?
bar에 대한 참조없이 foo를 호출하십시오. –