2012-06-25 4 views
4

Perl에는 기본적으로 struct라는 개념이 없습니다. 구조 클래스 가져 오기가 필요합니다. 이게 왜 그렇게 궁금해? 언어가 제공하는 기본 데이터 구조의 어떤 조합이이를 보완해야합니까?펄에서 구조체 대신 사용할 수있는 것은 무엇입니까?

+0

왜? 우리는 perl 사용자가 모듈을 선호하기 때문에. 이것은 C++ 사용자 사용 향상, Visual C 사용자 사용 MFC 등과 전혀 다르지 않습니다. –

답변

11

해시는 C에서 구조체가 사용하는 것과 거의 같은 것을 Perl에서 사용합니다 (사용하는 측면에서). 좀 더 복잡한 데이터 구조를 작성하려면 nest hashes을 사용할 수도 있습니다.

+0

링크를 제공해 주셔서 감사합니다. 네가 제공 한 의사에게 갔다. 그러나 그것은 특히 유지 보수성을 고려하고 싶으면 직관적이지 않습니다. 프로젝트를 통해 다른 언어로 옮겨가는 불경 한 죄를 범하는 것을 고려하십시오. 파이썬이이 시점에서 균형을 이루고있는 것 같습니다. – Laz

0

당신은 구조체에 대한 대안으로이 모듈을 시도 할 수 있습니다 - Class::Struct

+4

구조체를 클래스로 대체하는 경우 [Moose] (http://moose.perl.org)를 대신 사용할 수 있습니다. 특히 매개 변수 유효성 검사를 위해 훨씬 더 고급 기능을 제공합니다. – daxim

4

당신이 구조체와 C 헤더 파일을 기존의 경우,이를 기반으로 데이터 구조에 액세스 할 수 Convert::Binary::C를 사용합니다.

2

Class :: Struct는 나를위한 C 구조체의 역할에 맞지 않습니다. 내 생각에 C 구조체는 데이터를 구성하는 알려진 메모리 구조이지만, 가장 좋은 용도는 고정 길이 입력 레코드를 필드에 자동으로 구문 분석하는 것입니다.

언팩과 비슷한 기능을 수행 할 수 있습니다. C는 그렇게하지 않지만 별도의 구문 분석 호출이 필요합니다. 그러나 레코드를 읽기에 빌드하면 꽤 효율적입니다.

관련 문제