답변:
그동안 bash측면이 덮여있다, 당신의 질문은 나에게 당신이 그 변수에 걸쳐 왔어요 생각하게 perl코드입니다.
$&의 $_특수 변수입니다 perl. 그리고 그들은 특히 perl쉘 코드에서 호출 된 코드에서 발견됩니다 .
$_많은 perl함수와 연산자가 작업 하는 기본 변수 입니다. 해당 변수는 입력 연산자로 설정된 기본 변수이기도합니다.
에:
perl -pe 'some-code' < some-input
일부 코드는 일부 입력의 모든 라인에 대해 실행되며 행은에 저장되며 일부 $_내용은 $_일부 코드가 실행 된 후 인쇄됩니다.
s/regex/replacement/운영자에 작동 $_기본적으로. 따라서 종종 다음과 같은 것을 찾을 수 있습니다.
perl -pe 's/foo/bar/'
다음은 짧습니다.
perl -pe '$_ =~ s/foo/bar/'
(위 $_, 멀리로 쉘이 우려됩니다에 전달되는 그대로 인수의 한 부분이다 perl인터프리터는 쉘 변수는 그렇지 않습니다. 그건 그대로 인수로 전달됩니다 perl(표현 -e에) perl, 그리고 그것을위한거야 perl그것은으로 해석된다 변하기 쉬운).
$&perl마지막 일치 연산자 ( m/.../, s/.../.../...) 와 일치하는 항목으로 확장되는 또 다른 특수 변수입니다 .
예를 들어 :
$ echo foo | perl -lne '
print "The last character in $_ is $&" if m/.$/'
The last character in foo is o
또는:
$ echo foo bar | perl -pe 's/[aeiou]+/<$&>/g'
f<oo> b<a>r