왜 사용할 수 없는데 if($l =~ $ARGV[0])
사용할 수 있나요 if($l =~ /$ARGV[0]/g
?
$ perl script.pl '/^[\w]/g'
두 번째 경우
$ perl script.pl '^[\w]'
답변1
문자열과 정규식은 Perl에서 서로 다른 기본 유형입니다. 배열에 배치된 모든 변수 @ARGV
는 시작 시 커널에 의해 프로그램에 할당된 문자열일 뿐이며 $ARGV[0]
정규식이 아닙니다.
if($l =~ $ARGV[0])
이렇게 하면 대체 와 동일 $ARGV[0]
합니다 . 전자의 경우 슬래시는 단지 문자열의 문자이지만 후자의 경우 정규식을 구분하는 Perl 구문의 일부입니다.'/^[\w]/g'
if($l =~ '/^[\w]/g')
if($l =~ /^[\w]/g)