#!/bin/perl use strict; use warnings; use File::Path qw(make_path); my $txt = "txt"; my @files = glob("*$txt"); foreach my $filename (@files) { my ($seq, $nr, $mol, $dir, $step, $type) = (split /[._]/, $filename)[1..6]; print "name of file: $filename \n\n"; make_path("~/folder1/$mol/$dir"); }