ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. ¼Ò°³
´ÙÀ½°ú °°Àº Çü½ÄÀÇ ¼³Á¤ÆÄÀÏ ³»¿ëÀ» ÀÐÀ» ¼ö ÀÖ´Â ÇÁ·Î±×·¥À» ¸¸µé±â¸¦ ¿øÇß´Ù. ²Ï ÀϹÝÀûÀÎ Çü½ÄÀ̰í, ¾Æ¸¶µµ °ü·Ã perl ¸ðµâÀ» ãÀ» ¼ö ÀÖÀ»°Å¶ó »ý°¢µÇ¾úÁö¸¸, PerlÀ» ÀÌ¿ëÇÑ ÀڷᱸÁ¶´Ù·ç´Â ¹ýµµ ÀÍÈú°âÇØ¼ Á÷Á¢ ¸¸µé¾î º¸±â·Î Çß´Ù. [section] name1=value name2=value1,value2¾Æ¸¶ C++À» ÀÌ¿ëÇß´Ù¸é, ºÐ¸íÈ÷ STLÀ» ÀÌ¿ëÇØ¼ vectorÀÇ mapȤÀº mapÀÇ map Çü½ÄÀ¸·Î ±¸ÇöÇßÀ» °ÍÀÌ´Ù. ÀϹÝÀûÀÎ ÀڷᱸÁ¶·Î ÇÏÀÚ¸é ¹è¿ÀÇ hash, hash ÀÇ hashÀÏ °ÍÀÌ´Ù. ¿¹Àü¿¡ C++·Î °£´ÜÈ÷ ±¸ÇöÇØº»°Ô Àִµ¥, ¾Æ¸¶ ÀÌ ÄÚµåÀÇ Perl ¹öÁ¯ÀÌ µÇÁö ¾ÊÀ»±î ½Í´Ù. hash ÃʱâÈ
°¡Àå °£´ÜÇѹæ¹ýÀº ºñ¾îÀÖ´Â list¸¦ ÇÒ´çÇÏ´Â °ÍÀÌ´Ù. my %hash = (); Ű¿Í °ª Ãß°¡ Çϱâ$hash{'key'} = 'value';
$hash{$key} = $value;
hashÀÇ ·¹ÆÛ·±½ºÀÏ °æ¿ì¿¡´Â CÀÇ Æ÷ÀÎÅÍ¿¡¼Ã³·³ '->'¸¦ »ç¿ëÇÑ´Ù. $href->{'key'} = 'value';
$href->{$key} = $value;
Çѹø¿¡ ¿©·¯°³ÀÇ Å°,°ª Ãß°¡Çϱâ%hash = ('key1', 'value1', 'key2', 'value2', 'key3', 'value3');
key, value ¼øÀ¸·Î ³ª¿ÀÌ µÈ´Ù. ¹è¿°ú ÀüÇôÂ÷À̰¡ ¾øÀ½À» ¾Ë ¼ö ÀÖ´Ù. n¹øÂ° ¿ø¼Ò´Â key n+1¹øÂ° ¿ø¼Ò´Â value·Î ÇØ¼®ÀÌ µÉ »ÓÀÌ´Ù.
ÀÌ·¯ÇÑ hashÀÇ ¼ºÁúÀ» ÀÌ¿ëÇØ¼, perl¿¡¼ ±¸Á¶Ã¼¸¦ ±¸ÇöÇÒ ¼ö ÀÖ´Ù. Âü°í·Î perlÀº C¿¡¼ÀÇ ±¸Á¶Ã¼¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. ¿¹¸¦ µé¾î¼ »ç¿ëÀÚ Á¤º¸¸¦ À§ÇÑ userInfo ±¸Á¶Ã¼°¡ ÇÊ¿äÇÏ´Ù¸é, ´ÙÀ½°ú °°À» °ÍÀÌ´Ù. %hash = (
'name', '',
'address', '',
'age', '',
'tel', ''
);
´ÙÀ½Àº °£´ÜÇÑ Å×½ºÆ® ÇÁ·Î±×·¥ÀÌ´Ù.#!/usr/bin/perl
%userInfo = (
'name', '',
'address', '',
'age', '',
'tel', ''
);
$userInfo{'name'} = 'yundream';
$userInfo{'address'} = 'seoul seo-cho dong';
$userInfo{'age'} = 19;
$userInfo{'tel'} = '11-111-1111';
for $name(keys %userInfo)
{
print $name,"=>", $userInfo{$name},"\n";
}
# ÇØ½¬°¡ ¹è¿À̶ó´Â °ÍÀ» È®ÀÎÇϱâ À§Çؼ.
foreach(%userInfo)
{
print $_,"\n";
}
hashÀÇ hash
óÀ½ Áö¿øÇÒ·Á°í Çß´ø, ¼³Á¤ÆÄÀÏÀ» ´Ù½Ã »ìÆìº¸µµ·Ï ÇÏÀÚ. [section1] name1=value1 name2=value2 [section2] name1=value1 name2=value2name1=value´Â name1ÀÌ Å°°¡ µÇ°í value°¡ °ªÀÌ µÇ´Â hashÀڷᱸÁ¶¸¦ °¡Áø´Ù. ±×¸®°í À̰ÍÀº ´Ù½Ã sectionÀ» key·Î ÇÏ´Â hashÀڷᱸÁ¶¿¡ µé¾î°¡°Ô µÈ´Ù. °á±¹ hashÀÇ hash°¡ µÈ´Ù. section1 : name1=value1 name2=value2 section2 : name1=value1 name2=value2
´ÙÀ½Àº hashÀÇ hash ÀڷᱸÁ¶¸¦ Áö¿øÇÏ´Â ¼³Á¤ÆÄÀÏ Àбâ ÇÔ¼ö´Ù. perlÀÌ´Ï±î ¼ºê·çƾÀ̶ó°í ÇÏ´Â°Ô ÁÁÀ»°Í °°´Ù. 001 sub getCfg
002 {
003 my ($cfgfile) = @_;
004 open(FD, "<$cfgfile");
005 $rSection = "";
006 %cfgmap=();
007 while($line = <FD>)
008 {
009 # ÀоîµéÀÎ ¶óÀÎÀÌ section ÀÎÁö¸¦ È®ÀÎÇÑ´Ù.
010 if($line =~ /\[[a-zA-Z0-9]+\]/)
011 {
012 $line =~ s/\n|\[|\]//g;
013 push(@cfgSection, $cfgValue);
014 $Section = $line;
015 $rSection = $Section;
016 next;
017 }
018 # ¼³Á¤°ªÀ̶ó¸é '='¸¦ ±âÁØÀ¸·Î key¿Í value¸¦ ±¸ºÐÇØ³½´ÙÀ½
019 # ÇöÀç section À̸§À» key·Î ÇÏ´Â hash¿¡ Áý¾î ³Ö´Â´Ù.
020 if($line =~ /[a-zA-Z0-9]+=/)
021 {
022 $line =~ s/\s//g;
023 ($key, $value) = split '=', $line;
024 $cfgmap{$Section}{$key} = $value;
025 }
026 }
027 close(FD);
028 return \%cfgmap;
029 }
030
STLÀÇ mapÀ» »ç¿ëÇØº» °æÇèÀÌ ÀÖ´Ù¸é, perlÀÇ hash of hash ÀڷᱸÁ¶°¡ Çò°¥¸± ¼ö ÀÖÀ» °Í °°´Ù. ¿Ö³ÄÇϸé STLÀ̶ó¸é ´ÙÀ½°ú °°ÀÌ ±¸ÇöµÉ °ÍÀ̱⠶§¹®ÀÌ´Ù. perl°ú´Â ´Ù¸£´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ³ªµµ óÀ½¿£ ÀÌ°Í ¶§¹®¿¡ ²Ï³ª ¾î¸®µÕÀý Çß¾ú´ø ±â¾ïÀÌ ÀÖ´Ù. map.sub{key1} = value1;
map.sub{key2} = value2;
map.main{key} = map.sub
hashÀÇ hash access
À§ÀÇ getCfg ¼ºê·çƾÀ» ÀÌ¿ëÇØ¼ hash of hashÀÇ aceess¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸°Ú´Ù. ±âº»ÀûÀ¸·Î µÎ¹øÀÇ ·çÇÁ¸¦ µ¹·Á¾ß ¿øÇÏ´Â °ªÀ» ¾ò¾î¿Ã ¼ö ÀÖ´Ù. my $cfg = getCfg("config.cfg"); for my $section (keys %$cfg) { print "Section $section\n"; for my $name (keys %{$cfg->{$section}}) { print "$name = $cfg->{$section}->{$name}\n"; } }
getCfg°¡ ·¹ÆÛ·±½º¸¦ ¸®ÅÏÇ߱⠶§¹®¿¡,->¿¬»êÀÚ¸¦ ½á¼ °ª¿¡ Á¢±ÙÇß´Ù´Â °Í¿Ü¿¡´Â º° ƯÀÌ»çÇ×ÀÌ ¾ø´Ù.
°ü·Ã±Û
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|