2014-01-19 3 views
1

에 인쇄되지 않습니다. 그것은 나를 준다 :해시 내가 해시가 펄

intron: ARRAY(0x3430440) 
source: ARRAY(0x34303b0) 
exon: ARRAY(0x34303f8) 
sig_peptide: ARRAY(0x33f0a48) 
mat_peptide: ARRAY(0x3430008) 

왜 그렇습니까?

답변

10

값은 배열 참조입니다. 당신은 다음과 같이해야합니다.

while(my($key, $value) = each %sorted_features) { 
    print "$key: @$value\n"; 
} 

즉, 참조를 참조 해제하십시오.

use Data::Dumper; 
print Dumper \%sorted_features; 

당신은 같은 것을 볼 것입니다 : 당신은 당신의 데이터가 어떻게 생겼는지 알 수없는 경우, 좋은 생각이 Data::Dumper 모듈을 사용하는 것입니다

{ 해시 참조의 시작을 의미
$VAR1 = { 
      'intron' => [ 
         1, 
         2, 
         3 
         ] 
     }; 

, 배열 참조는 [입니다.

0

해시 값은 배열 참조입니다. 이러한 배열의 내용을 표시하기 위해 추가 코드를 작성해야하지만 그냥 다음 디버깅하는 경우는, 그런데, 당신의 해시 걱정의 이름 %sorted_features을이

use Data::Dumper; 
$Data::Dumper::Useqq = 1; 

print Dumper \%sorted_features; 

같은 Data::Dumper를 사용하는 아마 간단하고 나를. 해시는 본질적으로 정렬되지 않으며, each이 요소를 검색하는 순서는 기본적으로 무작위입니다.

0

또한 Data::Dumper::Pertidy을 사용하면 Perltidy를 통해 Data :: Dump의 출력을 실행할 수 있습니다.

#!/usr/bin/perl -w 

use strict; 
use Data::Dumper::Perltidy; 

my $data = [{title=>'This is a test header'},{data_range=> 
      [0,0,3, 9]},{format  => 'bold' }]; 

print Dumper $data; 

인쇄 :

$VAR1 = [ 
    { 'title'  => 'This is a test header' }, 
    { 'data_range' => [ 0, 0, 3, 9 ] }, 
    { 'format'  => 'bold' } 
];