#!/usr/bin/perl use strict; use warnings; opendir(DIR, "/samplesA") or die "Can not open folder, $!\n"; my @files = readdir(DIR); closedir (DIR); open my $barcodes, "<", "/ID.txt" or die "Can not open barcode file, $!\n"; my @lines=(<$barcodes>); close $barcodes; for my $file (@files) { next unless $file =~ m/fq$/; foreach my $line (@lines) { chomp $line; my ($id, $barcode) = split(/\t/,$line); if ($file =~ m/$barcode/) { my $new = $file; $new =~ s/sample_$barcode/$id/; rename ($file, $new) or die "Can not change $file to $new, $!\n"; } } }