Perl Yaml 덤프에서 열쇠로 명시 적으로 입력 된 Regexes가 허용됩니까?
문제
이것은 이전 질문과 관련이 있습니다. Python에서 Perl 데이터 구조를 어떻게 읽을 수 있습니까?. (0.66)와 함께 작업하는 Yaml 파서 버전의 버그 일 수 있지만 실행할 때 :
perl -MYAML -le 'do shift; print YAML::Dump( $CPAN::Config )' simple.pl
다음에 simple.pl
:
%config = (
'color' => 'red',
'numbers' => [5, 8],
qr/^spam/ => qr/eggs$/,
);
나는 얻다:
---
(?-xism:^spam): !!perl/regexp (?-xism:eggs$)
color: red
numbers:
- 5
- 8
Key Regex에는 명시 적 유형이 없습니다. 무엇을 제공합니까? (감사!)
해결책
에서 man perldata
:
해시는 관련된 스칼라 값의 정렬되지 않은 컬렉션입니다. 문자열 키.
키에는 Perl 유형이 없기 때문에 Yaml 덤프에 유형이 없습니다. 그들은 단지 현입니다. 당신의 경우 문자열 (?-xism:^spam)
이 시도:perl -l -e'%config = ( qr/^spam/ => qr/eggs$/); print $config{"(?-xism:^spam)"}'
제휴하지 않습니다 StackOverflow