2014-05-03

(Perl) 폴더 사이즈 구하기

Perl에서 더 좋은 모듈을 발견하지는 못해서, 일일이 파일 사이즈를 모두 더해서 폴더 사이즈를 구하였다. 그래서 시간이 좀 걸린다.

첫번째 방법

use v5.10;
use strict;
use warnings;
 
use File::Find;
 
sub get_folder_size {
    my ($dst_folder) = @_;
    my $folder_size = 0;
    find( sub { $folder_size += -f $_ ? -s _ : 0 }, $dst_folder );
 
    return $folder_size;
}
 
say "Folder Size : ".get_folder_size("C:\\");

두번째 방법

# ------------------------------------------------------------------------------
# 필요한 모듈 : cpanm -n File::Find::Object 
# ------------------------------------------------------------------------------
use v5.10;
use strict;
use warnings;
 
use File::Find::Object;
 
sub get_folder_size {
    my ($dst_folder) = @_;
    my $folder_size = 0;
 
    my $tree = File::Find::Object->new({}, ($dst_folder));
    while(my $file = $tree->next()) {
        next unless -e $file; # 존재하지 않으면 다음
        next unless -f $file; # 일반파일이 아니면 다음
        next unless -r $file; # 
        next unless -R $file; # 
        $folder_size += -s $file;
    }
 
    return $folder_size;
}
 
say "Folder Size : ".get_folder_size("C:\\");

2014-05-01

(Perl) MojoExample 이용해서 사이트 만들기

http://mojoexample.herokuapp.com/ 에 Mojolicious 의 아주 좋은 샘플을 만들어 놓았지만, 2년전에 만들어져서 최신 버전에서 실행하려면 약간의 문제를 일으킵니다. 이를 조금 수정해서 제대로 돌아가게 해보았습니다.
  • Install MojoExample
    $ cpanm -n Mojolicious Modern::Perl DBIx::Class DateTime DateTime::Format::SQLite Time::Duration File::Slurp SQL::Translator
    $ git clone https://github.com/tempire/MojoExample.git /opt/project/project_name
    
  • 바로 실행하면 에러가 발생하며, script/mojo_full의 마지막 줄을 아래와 같이 수정해주어야 합니다
    ...
     
    # Mojolicious::Commands->start; # 2012년 버전에는 존재하였으나, 지금(2014년)은 사라짐.
    Mojolicious::Commands->start_app('MojoFull');
    
  • start.sh 생성
    # nohup morbo -m production -l http://*:8080 script/mojo_full &
    morbo -m development -l http://*:8080 script/mojo_full
    
  • 실행
    $ ./start.sh
    
  • 이제 입맛대로 고쳐서 원하는 사이트를 만들어봅시다. *^^*