mojo 라이브러리를 받아서 설치하는 과정에 경고가 발생함.


$ perl Makefile.PL

Warning: prerequisite IO::Socket::IP 0.37 not found.

Writing Makefile for Mojolicious

Writing MYMETA.yml and MYMETA.json


MAC에서 수행, 내 PC에 내가 admin이므로 관리자 권한으로 설치함.

모듈을 못 찾으니 찾을 수 있도록 그 모듈을 설치함.

$ sudo perl -MCPAN -e shell


cpan[1]> install IO::Socket::IP

Reading '/Users/jeonbyeong-u/.cpan/Metadata'

  Database was generated on Thu, 28 Jan 2016 19:29:02 GMT

Running install for module 'IO::Socket::IP'

... 중략 ...

Running Build test

t/00use.t ........................... ok

t/01local-client-v4.t ............... ok

t/02local-server-v4.t ............... ok


$ perl Makefile.PL

Writing Makefile for Mojolicious    <-- 모듈 설치 후에 경고 사라짐

Writing MYMETA.yml and MYMETA.json

반응형

'Language > PERL' 카테고리의 다른 글

PERL 아파치 로그 정규식 라이브러리  (12) 2016.01.27
PERL 확장자 *.pm *.pl 차이  (16) 2016.01.27
Perl 네트웍 (링크)  (11) 2012.08.28

참조: https://github.com/PeterHickman/Apache-LogRegex


MAC에서 PERL로 구현해서 시험함.

Apache-LogRegex에서 LogRegex.pm만 가져다가 Apache 디렉토리에 옮겨두고 시험함.

아래 main.pl 파일로 

아파치로그 1줄에서 각각의 정보를 가져옴.




#!/usr/bin/perl
#
use strict;
use diagnostics;
use warnings;


use Apache::LogRegex
print "=== test ===\n";


my $line1  = '212.74.15.68 - - [23/Jan/2004:11:36:20 +0000] "GET /images/previous.png HTTP/1.1" 200 2607 "http://peterhi.dyndns.org/bandwidth/index.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2) Gecko/20021202"';


my $format = '%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"';
my $newRegex = Apache::LogRegex->new($format);
my $r = $newRegex->regex();


print "$r\n\n\n";
print "$line1\n";


my %data = $newRegex->parse($line1);
print "[1 h] $data{'%h'}\n";
print "[2 l] $data{'%l'}\n";
print "[3 u] $data{'%u'}\n";
print "[4 t] $data{'%t'}\n";
print "[5 r] $data{'%r'}\n";
print "[6 >s]$data{'%>s'}\n";
print "[7 b] $data{'%b'}\n";
print "[8 %{Referer}i] $data{'%{Referer}i'}\n";
print "[9 %{User-Agent}i] $data{'%{User-Agent}i'}\n";



반응형

'Language > PERL' 카테고리의 다른 글

모듈이 없는 경우  (15) 2016.01.29
PERL 확장자 *.pm *.pl 차이  (16) 2016.01.27
Perl 네트웍 (링크)  (11) 2012.08.28

.pl  : perl script

.pm : perl script module


두 확장자의 perl 파일 해석은 동일함.

.pm은 특정 디렉터리안에 파일을 두고 모듈로서 라이브러리 처럼 사용.


예시) 

./Apache/LogRegex.pm 

./main.pl


2개의 파일이 있다면 pm에 선언된 내용은 pl 파일에서 

Apache::LogRegex 이런 형태로 호출되어야 한다.


참고: http://stackoverflow.com/questions/3402821/in-perl-what-is-the-difference-between-a-pm-perl-module-and-pl-perl-script


작은 시험용이면 동일 디렉터리에 있지만

따로 지정된 경로를 사용하고 싶다면 환경변수에 path 지정하거나

-I 옵션으로 지정한다. 

예시) perl -I /home/path/lib -I /usr/anothre/lib main.pl


참고: http://www.perlhowto.com/extending_the_library_path

반응형

'Language > PERL' 카테고리의 다른 글

모듈이 없는 경우  (15) 2016.01.29
PERL 아파치 로그 정규식 라이브러리  (12) 2016.01.27
Perl 네트웍 (링크)  (11) 2012.08.28

http://www.tutorialspoint.com/perl/perl_socket.htm

반응형

'Language > PERL' 카테고리의 다른 글

모듈이 없는 경우  (15) 2016.01.29
PERL 아파치 로그 정규식 라이브러리  (12) 2016.01.27
PERL 확장자 *.pm *.pl 차이  (16) 2016.01.27

+ Recent posts