...의 조각으로이 분해하자
첫째, 구조의 유효성을 검사하는 함수 작성 : 필터를 사용하려면 ...의이 비트에 작성 시작하자 이제
sub validate
{
my ($data) = @_;
# always return true for now
return 1;
}
을 유효성 검사의 일부로서 이름을, 그래서 인수로 그를 추가 할 수 있습니다 :
sub validate
{
my ($data, $filter_name) = @_;
# always return true for now
return 1;
}
다른 작업을 수행하기 전에, 그 필터 이름은 키로서 존재하는지 확인하는 것이 할 것; 그렇지 않으면 유효성 검사가 실패했습니다.
sub validate
{
my ($data, $filter_name) = @_;
return if not exists $data->{$filter_name};
# otherwise, return true
return 1;
}
이제 값이 있는지 확인하십시오. 해시 키의 정의는 '존재'의 상위 집합이므로 정의 된 모든 값도 존재해야하지만 존재하는 모든 값을 정의 할 필요는 없으므로 undef가 값일 수 있으므로 첫 번째 검사는 생략 될 수 있습니다.
sub validate
{
my ($data, $filter_name) = @_;
return if not defined $data->{$filter_name};
# otherwise, return true
return 1;
}
우리는 FILTER_NAME 키가 데이터에 있는지 확인했고 그것은 정의되어 있지만, 한 단계 더보기 전에, 우리는 정말 hashref 있는지 확인해야합니다 지금
sub validate
{
my ($data, $filter_name) = @_;
return if not defined $data->{$filter_name};
return if ref $data->{$filter_name} ne 'HASH';
# otherwise, return true
return 1;
}
필터 이름 아래에서 'filter_actions'및 'filter_criteria'키를 찾습니다.
sub validate
{
my ($data, $filter_name) = @_;
return if not defined $data->{$filter_name};
return if ref $data->{$filter_name} ne 'HASH';
return if not defined $data->{$filter_name}{filter_actions};
return if not defined $data->{$filter_name}{filter_actions};
# otherwise, return true
return 1;
}
그게 전부 야! perldoc perlreftoot, perldoc perlref 및 perldoc perldsc의 perl 데이터 구조를 사용하여 읽어야합니다.
는 당신이 실제로 요구하는 것과 일치하는 - 당신이 어디에 필요한가를 요소를 계산합니까? – Ether