Perldoc 변수 구문:$foo 대 ${foo}
문제
나는 단지 perldocs를 검색하던 중에 이 예를 발견했습니다( http://perldoc.perl.org/perlre.html#Regular-Expressions - 캡처 그룹 예 참조)
"aa" =~ /${a}/; # True
"aa" =~ /${b}/; # True
"aa0" =~ /${a}0/; # False!
"aa0" =~ /${b}0/; # True
"aa\x08" =~ /${a}0/; # True!
"aa\x08" =~ /${b}0/; # False
해당 구문이 무엇을 의미하는지에 대한 문서를 찾을 수 없습니다.
그렇다면 이 맥락에서 정규식 /${a}/는 무엇을 의미합니까?
해결책
$ 괄호가있는 $ 가변 이름의 모호성을 피하십시오.그런 :
$foo = 'house';
'housecat' =~ /$foo/; # matches
'cathouse' =~ /cat$foo/; # matches
'housecat' =~ /${foo}cat/; # matches
.
또한 주어진 링크에서 $ A와 $ B에 대한 정의가 있지만 여기에 복사하는 것을 잊어 버렸습니다.
다른 팁
구분을 위해 중괄호가 필요합니다. $a
~에서 $a0
.토크나이저는 탐욕적이므로 변수 이름은 가장 긴 순서 가능.변수 보간에서 다른 알파벳이나 숫자가 뒤따르면 다음이 필요합니다. ${name}
통사론.
제휴하지 않습니다 StackOverflow