2016. 3. 10. 16:46
use Data::Dumper;
my $foo = "a:b:c:d:a";
my $bar = "a:b:c:d:z";
my $hoh = {};
sub createHash {
my ($hoh,$str_orig,$str_rest,$lastkey,$parent) = @_;
$str_rest = $str_rest || $str_orig || "";
$_ = $str_rest;
if (/^(.*?):(.*)$/)
{
$parent = $hoh;
$hoh->{$1} = $hoh->{$1} || {};
createHash($hoh->{$1},$str_orig,$2,$1,$parent);
}
elsif (defined($lastkey))
{
delete($parent->{$lastkey}) if ref $parent->{$lastkey} ne "ARRAY";
push (@{$parent->{$lastkey}} , [$str_rest,$str_orig]);
}
return $hoh;
}
$hoh = createHash($hoh,$foo);
$hoh = createHash($hoh,$bar);
print Dumper($hoh);
'Language > Perl' 카테고리의 다른 글
[Perl] date 형식 yyyymmddhh24miss 로 변경 함수 (0) | 2016.04.08 |
---|---|
[per] today, yesterday, nextday (3) | 2016.03.10 |
[perl] update 쿼리 (0) | 2016.03.10 |
[perl] 대표날짜로 일정기간 이전 이후 구하기 (0) | 2016.03.10 |
[Perl] 날짜구하기 'linux command line' (0) | 2016.03.06 |