use File::Basename qw( dirname basename ); for my $folder ( '/var/vavoom/cherry/cherry_etc', # cherry_etc '/var/varoom/cherry/cherry_var_data', # cherry_var_data '/var/vavoom/peach/peach_etc', # peach_etc '/var/varoom/mysql/peach_mysql_chant', # mysql_peach_chant '/var/vavoom/upload/var_finite', # upload_var_finite '/var/vavoom/upload/var_open', # upload_var_open ) { my $group = basename($folder); my $parent = basename(dirname($folder)); $group =~ s/$parent\_//g; $group = $parent . '_' . $group; print sprintf("%-40s %s\n", $folder, $group ); } /var/vavoom/cherry/cherry_etc cherry_etc /var/varoom/cherry/cherry_var_data cherry_var_data /var/vavoom/peach/peach_etc peach_etc /var/varoom/mysql/peach_mysql_chant mysql_peach_chant /var/vavoom/upload/var_finite upload_var_finite /var/vavoom/upload/var_open upload_var_open