목록perl (22)
꿈 많은 사람의 이야기
펄에서 자신이 원하는 문자를 찾고 싶을 때가 있을 겁니다 또는 문자열을 찾고 싶을 때가 있을 것이죠 그때 index( ) 함수를 사용할 수 있습니다. 해당되는 문자 또는 문자열이 어디에 위치해 있는지 알려주죠 단, 인덱스 번호로 알려줍니다 또 만약 발견을 못하면 -1이 반환됩니다. 소스 보면서 해보죠 사용방법은 아래와 같습니다. index(찾을 문자열, 찾는 값) 반환 되는 값은 해당 문자 또는 문자열이 위치한 인덱스입니다. $where 스칼라 변수에 e를 찾는 인덱스 값이 반환될 것입니다. e는 인덱스 기준으로 1이므로 1이 반횐되죠 이렇게요! 이번엔 문자열을 찾아볼까요? lesojin 이라는 문자열을 찾습니다. 찾을 값, 찾는 값은 둘다 스칼라 변수로 두었습니다 lesojin 문자열을 11번째 인덱스..
지난번 포스팅에서 배열 정렬에 관해서 잠깐 다루었었습니다. http://lsjsj92.tistory.com/94 이 글을 보시면 배열에 관해 정리하면서 정렬도 다루었었는데요 sort 함수를 사용하면 정렬은 가능하지만 완벽하지는 않습니다. 예를들어 아래와 같은 상황이 발생되죠 숫자를 정렬한다고 가정합시다 숫자가 들어있는 somelist 배열에는 1,2,4,~ 256의 숫자가 들어있습니다. 그걸 sort 함수를 이용해서 정렬을 하면 아래와 같이 출력됩니다 이상하죠? 내가 원했던 정렬은 1,2,4,8 순서대로 가는 정렬인데요 1, 128, 16, 2, 256, 32, 4, 64, 8 순으로 정렬이 되어 있습니다. 자세히 보면 가장 맨 앞 숫자는 순서대로 작은 값입니다. 즉 정렬이 아스키값으로 정렬이 되기 때문..
C나 Java 등 여타 다른 언어에서는 while 문 등 반복문을 사용할 때 break, continue를 자주 이용하게 됩니다. 특히 break 문장은 매우 자주 사용하게 되죠 펄에서도 마찬가지로 break, continue 기능을 하는 구문이 있습니다. 단, break, continue가 아닙니다. break는 last, continue는 redo 또는 next 입니다. last의 기능은 일반적인 break와 같습니다. while문을 하다가 last를 만나면 그 반복문을 빠져나오게 되죠 근데 continue 기능을 하는 redo, next가 조금 헷갈립니다. 2개가 있으니까요 그 차이점과 사용 방법을 알아볼까합니다. 먼저 last; 입니다. while을 계속 실행하고 있습니다(무한 루프라고 가정) 근..
펄에서 디렉토리를 찾고, 해당 디렉토리에 존재하는 파일들을 출력해주는 기능이 있습니다 디렉토리 핸들링이라고 불리는데요 그걸 알아볼까 합니다 먼저 chdir 함수를 알아보죠 chdir 함수는 요구된 디렉토리로 변경이 되는데요 변경이 올바르면 참을 리턴하고 못하면 false를 리턴합니다. 이렇게 합니다. 사용자가 $where에 입력을 받게합니다 그리고 그 입력값이 디렉토리에 존재하는 입력값이면 참을 리턴하기에 성공!이 뜨게 될 것입니다. 이렇게 말이죠! 저는 c드라이브가 있으니 성공이 뜹니다~ 그리고 glob( ) 즉 글로빙이라는 것이 있습니다(글로브라고도 부르더라고요) glob 함수는 파일명을 검색할 수 있습니다. glob( )를 이용해서 사용하기도 하지만 저는 다른 방법으로 사용해봤어요 그냥 안에..
안녕하세요~ 오늘은 펄 프로그래밍에서 파일 입출력을 하는 방법에 대해 공부해 볼까 합니다 여타 다른 언어와 마찬가지로 펄에도 파일 입출력이 있습니다 파일을 읽고, 쓰고 하는 과정이죠 간단한 예제로 공부해보죠! 먼저 진행할 파일이 필요합니다 저는 펄 워크스페이스에 위와 같은 텍스트 파일을 하나 준비했습니다. 안에 내용은 아래와 같습니다. 1 2 3 4 5 6 7 8 randal aabbcc fred camel soojin lee lee soojin cs 이제 이 파일을 읽어서 출력을 해봅시다 먼저 기본적인 문법은 이렇게 됩니다. open( ) 함수를 써서 파일을 열어줍니다. open(접근자, "파일명"); 이렇게요 이렇게 하면 read가 되는 겁니다. 쓰기(write), 덧붙이기(append)는 어떻게 할..
프로그래밍에서 문자열을 다루는 게 중요할 때가 많습니다. 그중 문자열을 자르고, 붙이고 하는 작업이 많은데요 펄에서도 그런 작업이 있습니다 split( ) 함수와 join( ) 함수가 그런 역할을 하는데요 split 함수는 문자열을 일정 규칙에 따라 잘라 배열에 넣어줍니다 join은 일정 규칙에 따라 붙여주고요 바로 소스로 가겠습니다~ 1 2 3 4 5 6 7 8 9 10 11 12 13 $line = "meryln:test:118:10:Randal:/home/meradf:/user/bin/perl"; @fields = split(/:/, $line); #line에서 : 를 기준으로 데이터를 잘라서 배열에 넣는다. print("@fields"); print("\n"); for($i = 0 ; $i
오늘은 펄로 get, post 방식을 진행해보려 합니다. 일종의 cgi 프로그래밍이죠? 뭐 어떻게 보면 이미 제가 써놨던 웹과 관련된 것들이 cgi를 이용했다고 볼 수도 있어요 그 예제들은 값을 전달하는게 아닌, 단순히 출력과 이벤트를 위주로 했었습니다. 오늘은 get, post 방식으로 값을 전달해보려 해요 get, post는 웹에서 값을 전달해주는 방식이죠? get방식은 url에 값이 나오고, post는 나오지 않고 등등 이런 차이가 있습니다. 이번에 할 것은 아래와 같습니다~ 이런식으로 출력이 되게 합니다~ 이것을 위해 C 드라이브에 있는 Apache에 파일을 나누었어요 위에는 perl 디렉토리구요 위는 cgi-bin이라는 폴더입니다. 그리고 http.conf 파일 설정도 조금 바뀌었어요! 이 내용..
안녕하세요~ 저번 글까지 펄의 서브루틴, 펄을 이용한 웹 페이지 출력 등을 진행해 보았습니다 하나씩 정리해보자 라는 생각으로 블로그에 정리를 시작했는데요 어느덧 자료가 많이 쌓였네요 하루에 1시간도 공부를 못하긴 하지만 그래도 짬짬히 공부했더니 많이 쌓였네요 어쨋든 이번에는 이 서브루틴을 이용해서 웹 페이지에 출력하려고 합니다. 일종의 함수화이죠 해시의 값에 따라 테이블 개수가 달라지는 방식인데요 처음엔 아래 사진 처럼 진행될 것입니다. 그리고 해시 개수를 늘리면 아래 사진처럼 될 것입니다. 여기서의 핵심은 서브루틴의 구조는 바뀌지 않는다!입니다. 단지, 전달해 주는 값만 바뀌는 거죠 바로 소스코드 보여 드리겠습니다~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ..
이번에는 펄을 이용해서 자바스크립트를 사용하는 방법에 대해 알아볼까합니다 펄에 자바스크립트를 적용하려면 당연히 웹 페이지로 제작을 해야겠죠? 간단하게만 사용해보고 넘어가겠습니다 사용 방법만 알면, HTML과 Javascript를 적용하실 줄 아시는 분들은 척척 하실 거라 생각되기 때문입니다~ 아마도 펄을 지금 보고 계신 분들은 기본적인 프로그래밍 지식이 있으신 상태에서 오셨을꺼라 생각하기 때문인데요 (왜냐하면 우리나라에선 perl을 먼저 배우지 않고, C, Java 같은 언어를 먼저 배우고 오고 또, 펄이 익숙한 언어는 아니라고 생각해서 입니다. ) 진짜 간단하게 사용방법만 설명하고 넘어가겠습니다~ 먼저 페이지 숨기기 기능이에요 이렇게 할 겁니다! 제 블로그 순서대로 따라 오셨다면 웹 페이지에 출력하시는..
이제 펄에 대해서 어느정도 지식을 쌓았습니다 펄 설치부터 일반 변수(스칼라), 반복, 조건, 배열, 해시 등 많은 것을 알아봤는데요 이번엔 서브루틴을 알아볼까합니다. 서브루틴은 흔히 java나 c에서 쓰이는 함수라고 보시면 됩니다. 펄에선 서브루틴이라고 불립니다~ 펄 글은 프로그래밍 지식이 조금은 있으신 분들이 보실 것 같은데요 혹시 몰라 함수가 뭐지? 하시는 분들을 위해 간단히 설명하면요! 함수는 일종의 기능을 결집해 놓은겁니다. 더하기 기능을 만들어서 필요때 마다 쓰고, 빼기 기능을 만들어서 필요때 마다 쓰고요 이런식이죠 ㅎㅎ 그럼 간단한 더하기 서브루틴을 만들어볼까요? 일단은 서브루틴의 간단한 개념을 봅시다. 펄에서 함수(서브루틴)은 sub로 시작합니다. sub 이름{ 기능 } 구성으로 진행되죠 간..