반응형
Perl에서 문자열이 비어 있는지 확인하는 적절한 방법은 무엇입니까?
이 코드를 사용하여 문자열이 비어 있는지 확인했습니다.
if ($str == "")
{
// ...
}
같지 않음 연산자도 마찬가지입니다.
if ($str != "")
{
// ...
}
이것은 작동하는 것처럼 보이지만 (내 생각에) 올바른 방법인지 또는 예기치 않은 단점이 있는지 확실하지 않습니다. 뭔가 옳지 않다고 생각합니다.
Perl에서 문자열을 비교하려면 eq
또는 사용하십시오 ne
.
if ($str eq "")
{
// ...
}
==
및 !=
운영자는 수치 비교 연산자. 두 피연산자를 비교하기 전에 두 피연산자를 정수로 변환하려고 시도합니다.
자세한 내용은 perlop man 페이지를 참조하십시오.
문자열이 Perl에 저장되는 방식으로 인해 문자열 길이를 가져 오는 것이 최적화됩니다.
if (length $str)
문자열이 비어 있지 않은지 확인하는 좋은 방법입니다.아직에 대해 보호하지 않은 상황에있는 경우
undef
경고하지 않는 "비어 있지 않은"항목은if (defined $str and length $str)
.
이미 여러 사람이 언급 eq
했듯이은 여기에서 올바른 연산자입니다.
use warnings;
스크립트에있는 경우 이에 대한 경고 (및 기타 많은 유용한 정보)가 표시됩니다. 나도 추천 use strict;
합니다.
"=="대신 "eq"를 사용하고 싶을 것입니다. 일부 예외적 인 경우에 대해 걱정하는 경우 정의되지 않은 항목도 확인해야 할 수 있습니다.
if (not defined $str) {
# this variable is undefined
}
CPAN을 사용하는 것 외에 어떤 일을하는 "적절한"방법이라는 개념은 Perl에 존재하지 않습니다.
어쨌든 그것들은 숫자 연산자입니다.
if($foo eq "")
또는
if(length($foo) == 0)
빈 문자열을 확인하려면 다음과 같이 할 수도 있습니다.
if (!defined $val || $val eq '')
{
# empty
}
반응형
'program tip' 카테고리의 다른 글
자바 스크립트에서 정수 나누기를 수행하는 방법 (float이 아닌 int로 나누기 답변 얻기)? (0) | 2020.09.11 |
---|---|
ArrayList에서 각 개체의 유형을 어떻게 알 수 있습니까? (0) | 2020.09.11 |
2 개의 객체 배열 병합 (0) | 2020.09.11 |
Mac OS X에서 파일을 사용하는 프로세스 확인 (0) | 2020.09.11 |
샘플 데이터에서 신뢰 구간 계산 (0) | 2020.09.11 |