use strict; use warnings; my @records = ( qq{FRAG 1 1 2000000 0 0 0 0 \\\\172.20.13.49\\backup\\rbgmst02_dd2\\stu1\\CPOSTA_1221170039_C1_F1 rbgmst02 65536 0 0 -1 0 *NULL* 1222379639 1 65537 0 0 0 0 0 0 0}, qq{FRAG 1 1 2000000 0 0 0 0 \\\\172.20.13.49\\backup\\rbgmst02_dd2\\New Folder\\Space File rbgmst02 65536 0 0 -1 0 *NULL* 1222379639 1 65537 0 0 0 0 0 0 0}, ); foreach my $record ( @records ) { my @leftFields = split m{\s+}, $record, 9; my $path = ( reverse map { $_ = reverse } split m{\s+}, reverse( $leftFields[ 8 ] ), 18 )[ 0 ]; my $basename = ( split m{\\}, $path )[ -1 ]; print qq{$path\n $basename\n}; }