#!/usr/bin/perl -w use strict; use File::Slurp qw(read_file); use XML::Dumper qw(pl2xml); my @DIRECTORIES = ( ['01-09-2012','/home/user/test/01-09-2012'], ['01-11-2012','/home/user/test/01-11-2012'], ['12-13-2011','/home/user/test/12-13-2011'], ); my %DATES; for my $dir (@DIRECTORIES) { $DATES{$dir->[0]} = _slurp_directory($dir->[1]); } my $request = { TYPE => 'UPLOAD', DATA => \%DATES, }; my $xml = pl2xml($request); print $xml; exit 0; sub _slurp_directory { my $directory = shift; my %DIR; if (opendir my $dh, $directory) { my @files = readdir $dh; closedir $dh; for my $file (@files) { next if $file eq "." || $file eq ".."; $DIR{$file} = read_file "$directory/$file"; } } return \%DIR; } #### SMB1 ; CMD_SCOUT_OPENLOG "Z:\home\user\SiteMate\01-11-2012\79342 SH.fgp" ; CMD_SCOUT_OPENBK "Z:\home\user\SiteMate\01-11-2012\79342 SH_GridPt.shp" WGS84 LATLON 101 CMD_SCOUT_OPENBK "Z:\home\user\SiteMate\01-11-2012\79342 SH_GridLn.shp" WGS84 LATLON 101 ; #### SMB1 ; CMD_SCOUT_OPENLOG "Z:\home\user\SiteMate\01-11-2012\79342 SH.fgp" ; CMD_SCOUT_OPENBK "Z:\home\user\SiteMate\01-11-2012\79342 SH_GridPt.shp" WGS84 LATLON 101 CMD_SCOUT_OPENBK "Z:\home\user\SiteMate\01-11-2012\79342 SH_GridLn.shp" WGS84 LATLON 101 ; #### VERSION 300 CHARSET "WindowsLatin1" DELIMITER "," COORDSYS Earth Projection 1,104 COLUMNS 2 __SAMPLEID char(40) _ELEVATION float DATA POINT -89.38364924 41.11561035 POINT -89.38364294 41.11651634 POINT -89.38364006 41.11741473 POINT -89.38364654 41.11832219 POINT -89.38484210 41.11832490 POINT -89.38484192 41.11741636 POINT -89.38484605 41.11650997 POINT -89.38483886 41.11560669 POINT -89.38605241 41.11560940 POINT -89.38604611 41.11651268 POINT -89.38604899 41.11741690 POINT -89.38604683 41.11832382 POINT -89.38724527 41.11831962 POINT -89.38724041 41.11741744 POINT -89.38725120 41.11651485 POINT -89.38724706 41.11560452 POINT -89.38844640 41.11561306 POINT -89.38844964 41.11651431 POINT -89.38845665 41.11741798 POINT -89.38844712 41.11832056