#!/usr/bin/perl -w use strict; use File::Basename; use File::Slurp qw(read_dir); my $control_file; my @acc_files; my ($path, $name); my @acc_dir = qw( accountdir_a accountdir_b); for my $acc (@acc_dir) { push @acc_files, grep { -f } read_dir( $acc, prefix => 1 ); } open XFILE, ">'$control_file'" or die $!; foreach my $account(@acc_dir) { chomp($account); if($account =~/(.*?)\/([^\/]+)$/) { $path=$1; $name=$2; } # name of the control file here::: ($control_file = $name) =~ s/(\.)([^.]+$)/$1txt/; # creating log file::: print XFILE "$name\n"; } close (XFILE);