#!/usr/bin/perl # --------------------------------------------------------- # Prepare runtime environment, define global configuration # --------------------------------------------------------- use strict; use vars qw($pcom $main); BEGIN { # ---------------------------------- # get paths, pwd, script name, # current namespace with PCOM # ---------------------------------- use lib './modules'; use PCOM; $pcom = PCOM->new(); $main = $pcom->main(); # ---------------------------------- # Save %ENV vars, setup directory # structure used by this script # ---------------------------------- $main->{'DIR'} = { 'logs' => $main->{'PWD'}.'/logs', 'modules' => $main->{'PWD'}.'/../modules', '2merge' => $main->{'PWD'}.'/2merge', 'merged' => $main->{'PWD'}.'/merged', }; } # end of BEGIN block # -------------------------------------------------------- # Load modules # -------------------------------------------------------- use Benchmark; my($start) = new Benchmark; # use futil class use Futils; # -------------------------------------------------------- # initialize class objects # -------------------------------------------------------- # file utilities library object my($futil) = Futils->new( 'main' => $main ); # -------------------------------------------------------- # set up variables # -------------------------------------------------------- # unbuffer STDOUT $| = 1; my($newline) = qq[\n]; # -------------------------------------------------------- # exec program # -------------------------------------------------------- my($start) = new Benchmark; foreach ((1..10000)) { my($newfile) = $main->{'DIR'}{'merged'}.'/merged.txt', my(@files) = ( $main-> {'DIR'} {'2merge'} .'/A', $main-> {'DIR'} {'2merge'} .'/B', $main-> {'DIR'} {'2merge'} .'/C', $main-> {'DIR'} {'2merge'} .'/D', $main-> {'DIR'} {'2merge'} .'/E', $main-> {'DIR'} {'2merge'} .'/F', $main-> {'DIR'} {'2merge'} .'/G', ); foreach(@files) { $_ = $futil->load_file($_); } $futil->write_file( 'filename' => $newfile, 'content' => join('', @files) ); print ( 'done with iteration number ' .$_ .$newline x 2 ); } my($end) = new Benchmark; my($elapsed) = timediff ( $end, $start ); print 'Execution time: ', timestr ( $elapsed ), "\n"; exit; # -------------------------------------------------------- # end program, define subroutines # --------------------------------------------------------