Perl

Perl

개요

Larry Wall 아저씨가 만든 인터프리터 방식의 프로그래밍 언어이다.

rich 한 기능을 손쉽게 사용하자는 것이 이 언어의 모토이며 웹 프로그래밍 및 간단한 배치작업 등에 많이 사용된다.

아티스틱 라이센스 나 GPL 라이센스 중 하나를 선택하여 사용할 수 있으며, 유닉스를 비롯한 다양한 플랫폼에서 작동한다.

디렉토리 순회 하며 복사

#!/usr/local/bin/perl
 
use File::Copy;
 
$source_dir = "test";
$target_dir = "test2";
$source_file = "$source_dir/*";
print "$source_file\n";
@all = glob( $source_file );
 
foreach $filename ( @all )
{
    $target_file = $filename;
    $target_file =~ s/$source_dir/$target_dir/g;
    copy( $filename, "$target_file" );
}

여러 파일을 대상으로 쉘 명령어 수행

foreach.pl
# this script performs all selected files ( as passed param 2, 3, ... so on ) to execute passed command as param 1
 
print( "${ \($#ARGV+1) }\n" );
my $param_cnt = $#ARGV + 1;
 
# check parameter validation
if ( $param_cnt < 2 )
{
    print "there are no parameters. at least 2 parameters are required for this script.\n";
    print " param 1 : command line\n" );
    print " param 2 : selected files ( each params are separated by space character ) \n";
    print " ex> foreach.pl \"p4 open\" a.dat b.dat c.dat\n" );
    system "pause";
    die "";
}
 
# separate params into command and files
my $command = $ARGV[0];
my @files = @ARGV[1..$param_cnt-1];
#print( "command : $command\n" );
#print( "files : @files\n" );
 
# perform each files to execute command as param 1
foreach $file ( @files )
{
    system "$command \"$file\"";
}

토탈 커맨더와 연동을 목적으로 작성

참조