#!/usr/bin/perl $folder_IN=$ARGV[0]; $level=0; $finaltreefile="./final.CSV"; $rootfile=`ls $folder_IN/$level*.CSV`; print "rootfile: $rootfile\n"; &treebuilder($rootfile); sub treebuilder{ $PRESENTLEVELFILE=shift; print "File level $level : $PRESENTLEVELFILE\n"; $level++; open(PRESENTLEVELFILE); while ($leafline=){ print "Leggo $leafline\n"; chomp($leafline); if ($. == 1){ if($PRESENTLEVELFILE =~ /^0*/i){ open(FINAL,">$finaltreefile"); print FINAL "0 $leafline\n"; close(FINAL); } next; }else{ print "next level=$level\n"; @element=split('§',$leafline); chomp($element[0]); print "Find $element[0]\n"; $NEXTLEVELFILE=$folder_IN."/".$level."_".$element[0].".CSV"; chomp($NEXTLEVELFILE); print "Check if file exists: $NEXTLEVELFILE\n"; if (-e $NEXTLEVELFILE){ print "$NEXTLEVELFILE !esiste!\n"; &treebuilder($NEXTLEVELFILE); open(FINAL,">>$finaltreefile"); $level++; print FINAL "$level $leafline\n"; close FINAL; } print "$NEXTLEVELFILE ?not exists?\n"; open(FINAL,">>$finaltreefile"); print FINAL "$level $leafline\n"; close FINAL; } } }