펄(Perl) CGI POST 값 잡기 프로그래밍

php, 루비 갖고 놀다가 루비의 정규 표현식의 원조처럼 보이는 펄로 눈길을 돌려서 고풍스러운 cgi를 작성하는데 html form을 통해 넘어온 post 값을 캐치하는 함수를 만들어봤습니다. html post는 기본적으로 표준입력으로 간주되므로 함수를 아래와 같이 만들었습니다. 펄은 마치 스크립트 계의 C 같은 존재네요. 파스칼 같은 파이썬의 얌전함보다는 펄은 C의 난폭스러움이 느껴지네요.

sub posted_value { 
   my $post = shift;
   my $s = '';
   while (<>) {
          if (/$post=/i) { 
               split /$post=/i;
               $s = $_[1]; 
          }
    }
   
    #한글 변환
   $s =~ tr/+/ /;
   $s =~ s/%([a-fA-F0-9]{2})/pack("C",hex($1))/eg;

  #앞뒤 공백 없애기, 다른 언어들의 trim 함수처럼...
   $s =~ s/^\s+|\s+$//g;

   return $s;
}

이 함수는 실제 사용례는...
....
<form action="podor.cgi" method="post">   
<INPUT type="text" name="word">
<INPUT type="submit" value="검색"> 
</form>
...
에서 post돼 온 값을...

my $s = posted_value('word');

와 같이 잡습니다. 한글도 물론 문제 없이...



덧글

댓글 입력 영역