많은 스크립트 언어가 있지만 정규표현식이나 문자열 처리 등에는 정말 Perl 만한 언어가 없는 것 같습니다.

 

조금만 사용할 줄 알아도 생활이 편해 지더군요.

 

저는 Perl을 그리 잘은 못하고 간단한 정규표현식이나 몇 몇 모듈 등만 아는 정도인데~

 

Perl을 사용하면서 제 생활이 정말 많이 편해졌다는 생각을 많이 합니다.

 

컴퓨터를 사용하려면 당연히 프로그램을 실행 시킬 텐데 이런 프로그램 실행을 정말 빠르고 쉽게 할 수 있는 툴로 Launchy 에 대해 아래 포스팅에서 소개한 적이 있습니다. 


2013/09/01 - [유틸] - 편리한 런치 프로그램 Launchy


2014/04/20 - [유틸] - 생산성 향상 어플 Launchy plugin 추가 방법

 

Launchy 의 다양한 기능 중에 저는 Weby 를 많이 사용하곤 하는데 Weby를 사용하다 보니~ 브라우저에서 더 이상 북 마크 기능은 안 쓰게 되더군요.

 

사실 북 마크를 해 놓더라도 그거 찾다가 시간 다 가곤 하는데 weby 를 사용하면서는 이런 불편 함 이 사라졌습니다.

 

그런데 Launchy 의 Weby를 사용하다가도 불편한 점이 생기더군요.

 

저는 Launchy를 이곳 저곳에서 사용하는데~ launchy 의 설정 등을 백업해서 정리를 합니다.

 

가령 집에서 사용하는 launchy의 설정은 launchy.home.ini 이라고 하고~ 회사에서 사용하는 Launchy 의 설정 파일은 launchy.com.ini 로 저장곤 합니다.

 

이곳 저곳에서 분산된 설정들을 한곳에 모으기 위해서는 merge 를 해야 하는데~ 한 두 개 일 때는 쉽지만 항목들이 여러 개가 되면서는 merge 하기가 힘들더군요.

 

그래서 간단하게 launchy.ini 파일들을 merge 하는 Perl 스크립트를 작성해 봤습니다. 아래 붉은 색으로 표시한 부분이 merge 할 파일 들이고 Perl 코드는 ini 파일들과 같은 폴더에서 실행 시켰습니다.

 

본인의 머지 할 파일 명들을 아래 @FILEPATH 부분에 기록해 주면 됩니다.

  

위 코드를 실행 시키면~ Merge.txt, Merge_weby.txt 파일이 생성됩니다. Merge_weby.txt 파일이 weby 정보들에 대한 merge 파일 입니다.

 

복사 해서 launchy.ini 파일의 [weby] 부분에 붙여 넣기 하시면 됩니다.


  1. 김병문 2016.09.19 15:40

    지금은 dll 형식으로 바뀐 것 같습니다. 백업하려면 dll파일만 보관했다가 붙여넣기 하면 되나요?

    • 남성 2016.09.19 15:43 신고

      dll은 라이브러리인데... 그게 설정파일이 아닐겁니다

보통 Autohotkey 를 사용하여 clipboard 의 내용을 바꾸거나 하는 과정들을 많이 하곤 하는데요~

 

오늘은 Perl 에서 clipboard 의 내용을 변경하거나 하는 방법에 대해 알아봤습니다.

 

Perl 의 CPAN 을 찾다 보니 역시나 있더군요.

 

윈도우의 경우 Win32::Clipboard 모듈을 설치해 줘야 합니다.

 

저는 Strawberry Perl 을 설치해서 CPAN Client 를 사용하는데요~

 

다음과 같이 CPAN Client를 실행한 후에~


 

아래 그림과 같이 Win32::Clipboard을 install 합니다.


install Win32::Clipboard

 

 

이제~ Perl 에서 Win32::Clipboard 모듈을 사용하면 되는데요~

 

사용법은 굉장히 심플하더군요.

 

아래는 예제 코드 입니다.

 

use strict;

use warnings;

use Win32::Clipboard;

 

my $CLIP = Win32::Clipboard();

 

my $String=$CLIP->Get(); # Clipboard 내용 가져오기

 

print $String;

 

$CLIP->Set("Changed Clipboard"); # Clipboard 에 저장하기

$CLIP->WaitForChange();          # Clipboard 내용 바뀔 때까지 기다리기

 

위 코드를 실행 시키면~ clipboard 에 Changed Clipboard 라는 내용이 저장되게 됩니다.

 

CTRL + V 를 눌러서 붙여 넣어보면 Changed Clipboard 라는 내용이 붙여 넣어집니다.

 

아래는 Windows CMD 창에서 실행 시킨 내용입니다.




아래 포스팅에서 소개했던 Notepad++ 는 가벼우면서도 굉장히 편리해서 많이들 사용하시리라 생각하는데요~

 

요즘 부쩍 Notepad++를 많이 사용하면서 그 기능들을 알아보고 있습니다.

 

Notepad++는 에디터이면서도 설정만 잘 하면 IDE 처럼도 사용이 가능하더군요.

 

셋팅하는 맛이 있는 에디터라는 생각이 듭니다.

 

오늘은 간단하게 Notepad++에서 Perl 을 실행하는 방법에 대해 설명 드리려 합니다.

 

저는 현재 Strawberry Perl 을 설치하였고~ 환경변수에 Perl 폴더가 설정되어 있는 상태입니다.

 

Perl 이 정상적으로 환경변수에 설정 됐다면 Perl –v 라는 명령을 쳤을 때 아래 그림과 같이 나올 겁니다.

 

Notepad++에서는 F5를 누르거나 아래 그림과 같이 실행 → 실행을 누르면 됩니다.

 

다음으로 아래 그림과 같이 Perl 을 실행하는 명령어를 적어 줍니다. $(FULL_CURRENT_PATH) 는 현재 파일의 전체 경로에 대한 Notepad++ 내부 명령어 입니다.

 

Perl "$(FULL_CURRENT_PATH)"

 

 

이제 해당 실행의 실행명과 단축키를 다음과 같이 설정합니다. 저는 Ctrl+F5로 설정했는데~ 편하신대로 하면 됩니다.

 

참고로 아래 포스팅에서는 NppExec라는 플러그인을 사용하여 Perl 을 실행하는 방법에 대해 설명하더군요.

 

http://damienlearnsperl.blogspot.kr/2009/01/launch-your-perl-script-from-notepad.html

 

저는 자주는 아니지만 정규표현식을 사용해서 텍스트 파일 등을 분석해야 하는 경우에 Perl 을 종종 사용하곤 하는데요~

 

Perl 문법이 간단한 편이긴 하지만~ 자주 사용되거나 중복되는 기능을 하는 부분들은 함수로 만들어서 사용하는 게 좋겠죠~

 

일의 특성상 자주 사용하는 기능들이 있어서 이러한 부분들은 라이브러리의 형태로 만들어서 사용하는 게 편리합니다.

 

오늘은 Perl 에서 다른 파일에 있는 함수를 가져다 사용하는 방법에 대해 간단히 설명 드리려 합니다.

 

C/C++ 에서는 다른 파일을 참조 할 때 include 를 하고~ 자바 등에서는 import 를 하는 것과 유사하게~

 

Perl 에서는 require 를 사용합니다.

 

그리고 함수는 다른 파일에 작성 후 파일의 맨~~ 마지막에 1; 라고 작성해 줘야 합니다.

 

간단하게 더하기를 하는 예제를 만들어 보죠~

 

일단 함수를 정의하는 부분의 코드는 다음과 같습니다.

 

 

<functionS.pl>

use strict;

use warnings;

 

sub add_func {

    my ($number1, $number2) = @_;

    return ($number1 + $number2); # 더하기~

}

1;

 

그리고 위 함수를 사용하는 파일의 코드는 다음과 같습니다.

 

<ExecutionFile.pl>

use strict;

use warnings;

 

require 'functionS.pl';

 

my $result = add_func(10,20);

print "$result\n" ;

 

이렇게~ 코딩하고~ ExecutionFile.pl 파일을 실행 시키면~~ 10+20 의 결과인 30이 나오게 됩니다.



  1. sng2c 2013.05.14 13:49

    안녕하세요. perl에 관심이 있으신거 같지만, 상당히 옛날 자료를 보시는 것 같아서 이렇게 댓글 남깁니다.
    http://qntm.org/files/perl/perl_kr.html 이걸 보시길 바래요~

Vim 은 설정하기에 따라서 정말 무궁 무진한 편리함이 있는 에디터라는 생각이 듭니다.

 

이러한 Vim 설정 파일은 아시다시피 C:\Program Files\Vim\_vimrc 에 있는데요.

 

64 비트를 쓰시는 분들은 C:\Program Files(x86)\Vim\_vimrc 에 있을 겁니다.

 

어쨌든 이 설정 파일에 자신 만의 단축키를 적용해서 사용하다 보면 자신도 모르게 Vim 이라는 에디터에 대해 공부를 하게 되더군요.

 

예전에 Vim 에서 사용가능한 Perl plugin 에 대해 소개한 적이 있는데 편리하게 사용하고 계신지 모르겠네요.

  

2011/05/04 - [유틸] - 윈도우 환경에서 vim Perl IDE 사용하기

그런데 위 포스팅에서 부족했던 게 Vim 에서 perl 을 어떻게 실행하는지에 대한 내용이 빠졌었네요.

 

그래서 오늘은 간단하게 Vim 에서 perl 실행하는 방법에 대해 소개 드립니다.

 

Perl 은 당연히 설치가 되었다는 가정하에 설명 드리겠습니다.

 

위에서 말씀드린 _vimrc 파일을 엽니다.

 

그리고 아래와 같이 써주고 저장 후 닫습니다.

 

map <F7> :! perl % <CR>

 

이제 부터는 F7 키를 누르면~~ Vim 에서 perl 코드를 실행 할 수 있습니다.

 

위 설정 예에서는 F7 으로 했는데 ~~ 단축키야 자신이 원하는 데로 지정하면 되고요.

 

간단하게 아래와 같은 코드에서 ~~

 

 

F7 을 살포시 누르면~~ 다음과 같이 위 코드 내용이 perl 로 실행되게 됩니다.

 

 

 

다른 운영체제들과는 다르게 윈도우에는 기본적으로 Perl 이 설치가 안 되어 있어서 따로 Perl 을 설치를 해줘야 합니다.

 

아래 주소에서 Perl 설치가 가능합니다.

 

http://www.perl.org/get.html

 

보통은 Binaries 에 보면 ActiveState Perl 과 Strawberry Perl 이 존재 합니다.

 

ActiveState Perl 은 ActiveState 사에서 만들어서 배포하는 버전이고 Strawberry Perl100 % 오픈 소스 펄로서 CPAN client, gcc 컴파일러 등을 포함하고 있습니다.

 

CPAN 에 있는 모듈 설치 할 때 CPAN client를 사용하니 대단히 편리하더군요.

 

Perl 을 설치하고 사용 할 때는 텍스트 에디터에서 작성하고 command 창에서 작성한 코드를 실행하면 됩니다.

 

그런데 이런 과정은 아무래도 불편하긴 하죠.

 

그래서 Perl IDE 를 찾다 보니 Padre 가 나오더군요.

 

Padre 는 Multi-platform Perl IDE 로서 아래 주소에서 다운로드 받을 수 있습니다.

 

http://padre.perlide.org/download.html

 

각자 운영체제에 맞는 파일을 다운로드 하시고 설치 하시면 됩니다.

 

설치야 뭐 다음 ~ 다음~ 누르면 되니깐 설명은 생략하겠습니다.

 

Padre 를 설치하게 되면 기본적으로 Strawberry Perl 이 설치가 됩니다.

 

즉 Strawberry Perl 을 따로 또 설치 할 필요가 없다는 거죠.

 

Padre를 실행해보면 요렇게 생겼습니다.

 

 

Perl 코딩 후 바로 F5 누르면 실행해 볼 수도 있고, Perl 의 가장 큰 장점인 정규 표현 식 작성을 도와주는 Regex Editor 와 같은 툴도 있고, 다른 편리한 plugin 들도 쉽게 추가 할 수 있게 되어 있습니다.

 

 

다양한 기능들이 있으니 천천히 코딩 해가면서 익히는 것도 도움이 될 듯 합니다.

 

저도 Perl 초보인데… Padre 환경에서 작업하니 정말 편리하다는 생각이 드네요~

MS word 자동화에 대해 찾다 보니 C#, C++, VB 등을 이용한 문서 생성 방법 등이 나오더군요~

 

그러다 찾은 게 Perl 을 이용한 MS word 문서 생성 방법 입니다.

 

역시 Perl 은 역사가 깊은 만큼~ 없는 게 없군요. 굉장히 쉽고 편리하게 MS word 문서를 생성 할 수 있습니다.

 

Cpan 에서 Win32::OLE 을 설치 한 이후에 아래와 같이 코딩을 하면 문서가 뚝딱~ 만들어 집니다.

 

use warnings;

use strict;

use Win32::OLE;

 

my $word = CreateObject Win32::OLE 'Word.Application' or die $!;

$word->{'Visible'} = 0; # 화면에 보이진 않게 함, 1 로 설정하면 화면에 보이게 됨

 

my $document = $word->Documents->Add;

 

my $selection = $word->Selection;

 

$selection -> TypeText("워드 문서 생성~"); # 본문 내용

$selection -> TypeParagraph;

$selection -> TypeText("This is word document generated by perl"); # 본문 내용

$selection -> TypeParagraph;

 

$selection -> TypeText("제목"); # 본문 내용

$selection -> {'Style'} = "제목 1"; # 현재의 selection 부분에 스타일 설정

 

$selection -> TypeParagraph;

 

my $heading_1 = $document->Styles("제목 1");

my $heading_1_font = $heading_1->Font;

 

$heading_1_font -> {Name} = "맑은 고딕";

$heading_1_font -> {Size} = 20;

$heading_1_font -> {Bold} = 1;

 

$document->SaveAs('c:\generated.docx'); # c:\generated.docx 로 저장

$word->Quit();

 

 

위 코드 실행하면 다음과 같은 워드 문서가 만들어 집니다.

 

 

인터넷에서 찾은 간단한 예제 가지고 만든 거라 별거 안 나오지만 ~

 

Win32::OLE 모듈에 대해 좀더 공부한다면 훌륭한 문서 생성 자동화 방법이 될 것 같네요~


 

개인적으로 윈도우 환경에서 GVim Editor 를 주로 사용하는 편입니다.

 

뭐 vim 이야 말이 필요 없는 Editor 이니 많은 분들이 이용 할 거라 생각 되는데요.

 

일단 가볍고 OS 안 가리고 잘 돌아가고~

 

나름의 설정이나 코딩하는 맛도 있고 해서 vim을 좋아라 합니다.

 

요즘 Perl 공부를 하다가 Perl IDE 는 없나 하는 생각으로 찾다 보니….

 

역시나 Perl IDE 환경을 제공해주는 script 가 있더군요.

 



 

Perl IDE vim script 는 다음 주소에서 다운 받습니다.

 

http://www.vim.org/scripts/script.php?script_id=556

 

  • 위 주소에서 현재 가장 최신 파일인 4.11 version 파일을 다운로드 받습니다.

 

  • 다운로드 한 zip 파일을 vim 이 설치된 경로의 vimfiles 폴더에 압축 해제 합니다.

 

  • Vim 설정 파일인 .\Vim\_vimrc 파일에 아래 내용 코드가 없다면 기재한 후에 저장을 합니다.

 

:filetype plugin on

 

  • .\Vim\vimfiles\perl-support\templates\Templates 파일을 열어서 아래 기본적인 사용자에 대한 내용들을 기입하고 저장해 줍니다.

 

|AUTHOR| = YOUR NAME

|AUTHORREF| =

|EMAIL| =

|COMPANY| =

|COPYRIGHT| = Copyright (c) |YEAR|, |AUTHOR|

  


 

위 파일까지 설정을 하면 설정은 다 끝났네요.

 

이제 Gvim 을 실행하면 아래 그림처럼 Perl 메뉴가 생긴 것을 확인 할 수 있습니다.

 

 

위 그림에서 보시는 바와 같이 단축키를 이용할 수도 있는데요~

 

단축키는 아래 주소에 잘 정리가 되어 있어서 할 때마다 보면서 연습하면 될 것 같네요.

 

http://lug.fh-swf.de/vim/vim-perl/perl-hot-keys.pdf


+ Recent posts