왜 다음과 같은 Perl 코드가 필요한가요?
mkdir("foo");
print "foo: $!\n";
mkdir("foo");
print "foo: $!\n";
다음을 출력합니다( 없는 디렉토리에서 foo
)
perl ./asdf.pl
foo:
foo: File exists
하지만 foo
다음을 삭제하세요.
$ perl <<EOF
mkdir("foo");
print "foo: $!\n";
mkdir("foo");
print "foo: $!\n";
EOF
오류를 삼키고 출력하고,
foo:
foo:
답변1
이라는 단어를 인용하고 싶습니다 EOF
. 문서 ( man bash
) 에서
의 일부가
word
인용된 경우 구분 기호는 따옴표를 제거한 결과word
이며 문서의 줄은 여기에서 확장되지 않습니다.
그래서 그것은 다음과 같습니다.
$ perl <<'EOF'
EOF
EOF
인용되지 않은 경우 $!
Perl로 전송되기 전에 쉘에서 삽입됩니다.
$ cat <<EOF
mkdir("foo");
print "foo: $!\n";
mkdir("foo");
print "foo: $!\n";
EOF
mkdir("foo");
print "foo: \n";
mkdir("foo");
print "foo: \n";